如何使用templates呢?
在views.py文件中,函数或者方法通过return render(request,"userInfor.html",{"info_list":info_list})返回一个HttpResponse对象,这样就是在使用模板了,第一个参数request我就不多说了,第二个参数就是你在templates里面新建的userInfor.html文件,第三个是需要传到模板的字典,可以使用 locals()返回一个包含当前作用域里面的所有变量和它们的值的字典。
可能有些朋友访问不了,怎么回事呢?需要在你的settings.py 添加”app“,添加如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app',
]
模板的使用
主要使用两种:过滤器{{ name }}、标签{% for %}
过滤器我就不说了,比较重要一点就是管道符(|),是变量实用的。值得一提的是模板中列表字典等都是通过点字符调用自己的内容。
标签有些呢?
{% for i in list %}
跟python的for用法一样
{% empty %}
list空显示的内容
{% endfor %}#结束
注意,for标签不支持break,countinue。
在for循环中其他自定义的东西,如下:
变量 | 描述 |
---|---|
forloop.counter | 索引从 1 开始算 |
forloop.counter0 | 索引从 0 开始算 |
forloop.revcounter | 索引从最大长度到 1 |
forloop.revcounter0 | 索引从最大长度到 0 |
forloop.first | 当遍历的元素为第一项时为真 |
forloop.last | 当遍历的元素为最后一项时为真 |
forloop.parentloop |
用在嵌套的 for 循环中, 获取上一层 for 循环的 forloop |
{% if num > 100%}
{% else %}
{% endif %}
request也是局部变量,因此也可以在模板中调用,前提需要在views.py中调用locals()返回一个包含当前作用域里面的所有变量和它们的值的字典。
当然还有ifequal/ifnotequal标签,url标签,大家可以自己去查一下具体用法。