传统MVC
Django 设计模式 MTV
模板配置
创建模板文件夹<项目名>/templates
在settings.py 中TEMPLATES配置项
配置乡长,需要修改的部分
‘DIRS‘:[os.path.join(BASE_DIR,‘templates‘)],
模板的加载方式
通过loader获取模板,通过HttpResponse进行响应
在视图函数中
from django.template import loader
# 通过loader加载模板
temp = loader.get_template("模板文件名称")
# 通过temp转换成HTML字符串
html= temp.render(字典数据)
# 用响应对象将转换后的字符串内容返回给浏览器
return HttpResponse(html)
使用render()直接加载并相应模板
在视图函数中
from django.shortcuts import render
return render(request,‘模板文件名‘,字典数据)
视图层与模板层的交互
视图函数中将Python 变量封装到字典中传递到模板
def xxx_view(request)
dic = {
"变量1":"值1",
"变量2": "值2",
}
return render(request, ‘xxx.html‘, dic)
在模板中可以使用 {{ 变量名 }} 的语法,调用视图函数传来的变量
模板层-变量
在模板中使用变量的语法
模板层-标签
if 标签
{% if 条件表达式1 %}
.。。
{% elfi 条件表达式2 %}
.。。
{% endif %}
for 标签
{% for 变量 in 可迭代对象 %}
...循环语句
{% empty %}
...可迭代对象无数据是填充语句
{% endfor %}
#内置变量- froloop
forloop.counter 循环的当前迭代(从1开始索引)
forloop.conunter0 循环的当前迭代(从0 开始索引)
forloop.revcounter counter值得倒序
forloop.revcounter0 revcounter值得倒序
forloop.first 如果是第一次通过循环,则为真
forloop.last 如果是最后一次通过循环,则为真
forloop.parentloop 当前套循环,parentloop表示外层循环
原文:https://www.cnblogs.com/devin-qiu/p/14905331.html