环境配置 system w10/ubuntu18.0.4 python 3.7.4 django 3.0.3 模板的定义 变量 {{var}} 输出计算变量的值,变量不存在插入的时空字符串 对象的传递方式{{对象名.属性}},可以调用没有参数的函数方法 变量的分析步骤: 1.字典 2.属性方法 3.索引 标签 {% tag %} 作用:控制逻辑和循环,输出创建文本 if {%if 表达式%} 语句 {%endif%} if else {%if 表达式%} 语句 {%else%} 语句 {%endif%} if elif else {%if 表达式%} 语句 {%elif 表达式%} 语句 {%else%}#可有可无 语句 {%endif%} for forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) forloop.revcounter 当前循环的倒序索引值(到1结束) forloop.revcounter0 当前循环的倒序索引值(到0结束) forloop.first 当前循环是不是第一次循环(布尔值) forloop.last 当前循环是不是最后一次循环(布尔值) forloop.parentloop 本层循环的外层循环 {% for 变量 in 列表 %} 语句 {% empty %}#列表为空的时候执行 语句 {% endfor %} {{forloop.counter}}#表示第几次的循环 comment {% comment %} 注释多行 {% endcomment %} ifequal ifnotequal 判断是否相等 {% ifequal 值1 值2 %} 语句 {% endifequal %} include 加载模板,用参数渲染 {% include ’模板目录‘ 参数一 参数二 参数三 %} url 反向解析链接 {% url ’namespace:name‘ 参数一 参数二 %} 作用:有时候我们可能会改变原有的链接路径,如果我们的网页内部使用的是硬链接就需要修改大量的链接 ,伪类避免在实际工作中减少不必要的错误,一般会在urls的path路劲中添加namesapce属性和name属性, 在project的urls中添加 path('lql/', include('myapp.urls', namespace= 'myapp')) 在myapp的urls文件中添加 app_name = ’myapp‘ # 前面不加/表示在当前路径下添加路径 path('good/', views.good, name= 'good'), 这样我们可以在需要链接的地方加入 <a href="{% url 'myapp:good' 1000 %}">点击跳转good</a> csrf_token 跨站虚假请求保护,防止别人恶意攻击,一般用于表单。 {% csrf_token %} block extends 用于模板的继承 查看base.html 和 home.html的页面 block 为在父类的模板中预留空间插入子模版的独特内容,使用实在子模板中。 {% block 标签名 %} 内容 {% endblock %} extend 模板的继承,写在模板的第一行{% extend ‘模板路径’ %},不需要再次申明文档。 模板的使用 创建base基础模板 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>base</title> <style> header,footer{ width: 100%; height: 15%; background: blueviolet; } </style> </head> <body> <header><h1>base html</h1></header> <div id="main"> {% block base %} {% endblock base %} </div> <footer><h1>base footer</h1></footer> </body> </html> 创建home模板 {% extends 'myapp/base.html' %} {% block base%} <ul> {% for i in demo %} <li> I am {{ i }}---{{ forloop.counter }} </li> {% endfor %} </ul> {% endblock %} autoescape {% autoescape on|off%} 语句 {% endautoescape %} 用于html转义,主要用于输入html标签时使用转义为html元素 例如视图端输入一个<h1>today is a nice day !</h1>,他可能被直接以字符串形式输出,并不会以 页面的形式进行解析并输出。这时可以用到我们使用的{% autoescape on|off%},为on时开启html转义,为off时关闭html转义 ,结束时使用{% endautoescape %}一般多用于多行转义 过滤器 作用:在变量显示前修改 {{ var| filter}} {{ var|escape }} 不转义html类型的数据,直接以字符串的形式加载到页面 safe 为单行转义html的 {{var|safe}} lower upper 大小写 {{列表|join:‘连接符’}}将列表里的元素连接成一个字符窜 {{ var|default:"str" }} 当变量为空或者没有值或者为否,显示str,变量有值显示变量的值 {{ value|date:"Y-m-d H:i:s"}} #显示时间格式 年-月-日 时:分:秒 add "加"给变量加参数,字符串默认尝试转int类型,转不了就拼接 {{ value|add:"2" }} value是数字4,则输出结果为6 {{ value|add:"hello" }} value是数字666,则输出结果为666hello {{ first|add:second }} 如果first是 [1,.2,3] ,second是 [4,5,6] ,那输出结果是 [1,2,3,4,5,6] title 标题 {{ value|title }} ljust 左对齐 "{{ value|ljust:"10" }}" rjust 右对齐 "{{ value|rjust:"10" }}" center 居中 "{{ value|center:"15" }}" length 长度 {{ value|length }} 返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4. slice 切片 {{value|slice:"2:-1"}} first 取第一个元素 {{ value|first }} last 取最后一个元素 {{ value|last }} cut 移除value中所有的与给出的变量相同的字符串 如果value为'i love you',那么将输出'iloveyou'. {{ value|cut:' ' }} truncatechars 按照字符截断 ...也计数 如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾 #参数:截断的字符数 {{ value|truncatechars:9}} truncatewords 按照单词进行截断, 只针对英文(...)不计数,中文按字计算 filesizeformat 文件大小人性化显示 将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)例如: {{ value|filesizeformat }} 如果 value 是 123456789,输出将会是 117.7 MB # num/1*5除法运算 {% widthratio num 1 5 %} 单行注释 {#<h1>today is a nice day</h1>#}
django之模板的使用templates
最新推荐文章于 2024-07-28 15:46:11 发布