深圳中建南方建设集团网站,网站的结构与布局优化,成都logo设计公司,单页网站制作【1】模板之变量 在Django模板中要想使用变量关键是使用点语法。 获取值的语法是#xff1a;{{ 变量名 }} Python中所有的数据类型包括函数#xff0c;类等都可以调用 【2】模板之过滤器
过滤器语法 {{ obj | filter_name#xff1a;param }} obj#xff1a;变量名字{{ 变量名 }} Python中所有的数据类型包括函数类等都可以调用 【2】模板之过滤器
过滤器语法 {{ obj | filter_nameparam }} obj变量名字filter_name过滤器名称param变量default过滤器 如果一个变量是false或者为空使用给定的默认值。否则使用变量的值语法{{ value | defaultonthing }}length过滤器 返回值的长度。对列表和字符串都起作用语法{{ value | length }}filesizeformat过滤器 将值格式化为一个人类可读的文件尺寸例如13KB4.1MB等语法{{ value | filesizeformt }}date过滤器 如果valuedatetime.datetime.now()返回当前的时间语法{{ value | dateY-m-d }}slice过滤器 切分如果value helloworld 语法{{ value | slice:2:6}}truncatechars过滤器 如果字符串多于指定的字符数量那么会被截断。截断的字符串将以.....结尾参数要截断的字符数语法{{ value | truncatechars6}}safe过滤器 取消对HTML标签和js等语法标进行自动转义语法{{ value | safe }} 在Django中有两种方法关闭HTML的自动转义 1、通过safe过滤器 2、通过django内部的mark_safe方法 from django.utils.safestring import mark_safedef index(request):res mark_safe(ahello/a)return render(request,index.html)然后在index.html中使用{{ res }}查看结果 【3】模板之标签 【3.1】for标签 for标签遍历每一个元素 语法 # 循环一个字典{% for user in user_dict %}p{{ user }}/p
{% endfor %}{% for key,value in user_dict.items %}p{{ key }}:{{ value }}/p
{% endfor %}{% for user in user_dict.items %}p{{ user }}/p
{% endfor %}{% for user in user_dict.keys %}p{{ user }}/p
{% endfor %}{% for user in user_dict.values %}p{{ user }}/p
{% endfor %}
items拿到字典key值和value值keys只拿到字典的key值value只拿到字典的value值
{% for user in user_dict %}p{{ forloop }}/p
{% endfor %}
循环序号可以通过{{forloop}}显示指定{{forloop}}后会打印出以下的值{parentloop: {}, counter0: 0, counter: 1, revcounter: 3, revcounter0: 2, first: True, last: False}counter0:代表的是索引数counter代表是的顺序first代表的第一个last代表的最后一个【3.2】for......empty标签 for标签带有一个可选的{% empty %} 从句以便在循环的对象为空或者没有找到时可以有所操作 语法 {% for person in person_list %}p{{ person.name }}/p{% empty %}psorry,no person here/p
{% endfor %}
person_list为空或者找不到时会执行{% empty %}中的p标签的执行【3.3】if标签 {% if %}会对一个变量求值如果它的值是True存在不为空且不是false对应的内容块会输出。总而言之就是和python中的if语句使用方法类似 语法 def index(request):num89
return render(request,index.html){% if num 100 or num 0 %}p无效/p
{% elif num 80 and num 100 %}p优秀/p
{% else %}p凑活吧/p
{% endif %} if语句支持 and、or、、、、!、、、in、not in、is、is not判断 【3.4】with标签 使用一个简单的名字缓存一个复杂的变量简而言之就是起别名 语法 def index(request):d {username:kevin,age:18,info:这个人有点意思,hobby:[111,222,333,{info:NB}]}
return render(request,index.html)# with起别名
{% with d.hobby.3.info as nb %}p{{ nb }}/p在with语法内就可以通过as后面的别名快速的使用到前面非常复杂获取数据的方式p{{ d.hobby.3.info }}/p
{% endwith %} 【4】模板之导入
模板导入就是将一个html文件导入到另一个html文件之中语法 {% include 模板名称 %} 在导入文件中写导入
【5】模板之继承 模板继承可以让您继承另一个模板的所有元素还可以定义能够被字模板覆盖的block 继承的语法 {% extends 被继承的模板 %} block标签定义了3个可以被字幕版内容填充的block。block模板告诉模板引擎字幕版可能会覆盖掉模板中的这些位置 block独立块的语法 {% block 名字(随意) %} 要覆盖的内容 {% endblock %}