Django模板的使用:
1、在settings.py配置文件中修改TEMPLATES配置项的DIRS值
2、render(request对象, 模板文件路径, 模板数据字典)
3、变量的取值方法:
<h1>{{ city }}</h1>
<h1>{{ adict }}</h1>
<h1>{{ adict.name }}</h1> 注意字典的取值方法
<h1>{{ alist }}</h1>
<h1>{{ alist.0 }}</h1> 注意列表的取值方法
4、模板语句:
1、for循环:
{% for item in 列表 %}
循环逻辑
{{forloop.counter}}表示当前是第几次循环,从1开始
{%empty%} 列表为空或不存在时执行此逻辑
{% endfor %}
2、if 判断:
{% if ... %}
逻辑1
{% elif ... %}
逻辑2
{% else %}
逻辑3
{% endif %}
注意:运算符左右两侧不能紧挨变量或常量,必须有空格。
5、过滤器:
safe,禁用转义,告诉模板这个变量是安全的,可以解释执行
length,长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。
default,默认值,如果变量不存在时则返回默认值。data|default:‘默认值’
date,日期,用于对日期类型的值进行字符串格式化:value|date:“Y年m月j日 H时i分s秒”
6、模板继承:
1、父模板:
{% block 名称 %}
预留区域,可以为空
{% endblock %}
2、子模板:extends 写在文件的第一行
{% extends "父模板路径"%}
{% block 名称 %}
实际填充内容
{{ block.super }}用于获取父模板中block的内容
{% endblock 名称 %}
当HTML页面有Django相同的模板语法来填充变量时,用{% verbatim %}…{% endverbatim %} 包裹起来,js就不会按照Django的语法来渲染了
Django template权限的使用,(控制菜单的显示):
{% if perms.sp.add_user %} perms.app名字.权限名 返回布尔值
<p>显示内容</p>
{% endif %}
添加用户权限用perms.auth.add_user