1、视图向模板传变量-(返回模板变量)
1.1、编辑-视图层-视图函数-传递变量
编辑对应的子应用下的views.py文件,重新编写对应的视图函数
编辑前:旧的视图函数
from django.shortcuts import render, HttpResponse
import json
# Create your views here.
# 新增的视图函数
def index(request):
return render(request, "index.html")
视图函数中可以将Python变量封装到字典中,传递到模板里面
编辑后:新的视图函数
from django.shortcuts import render, HttpResponse
import json
# Create your views here.
# 新增的视图函数
def index(request):
data = {"blog_title":"我的博客"} # 将变量封装到字典中
return render(request, "index.html",data)
1.2、编辑-模板层-html模板-引用变量
在对应的index.html模板中 就可以使用 data里面的变量了
<a class="navbar-brand d-md-none d-lg-block" id="site-logo-name" href="/">
<strong class="px-2">{{ blog_title }}</strong>
</a>
如上在index.html模板中引用了 视图函数里面的变量 blog_tittle
模板中,我们可以使用{{ 变量名字 }}的语法,调用视图传进来的变量
引用方式:{{ 变量名字 }}
2、模板标签
作用:将一些服务端的功能嵌入到模板中,例如流程控制等
标签语法:
{% 标签 %}
...
{% 结束标签 %}
if标签
语法:
{% if 条件表达式1 %}
...
{% elif 条件表达式2 %}
...
{% elif 条件表达式3 %}
...
{% else %}
...
{% endif %}
注意:
if条件表达式里可以用的运算符 | 比较(关系)运算符 | == != < > <= >= | | —- | —- | | 成员运算符 | in、not in | | 身份运算符 | is、is not | | 逻辑运算符 | and、or、not |
在if标记中使用实际括号是无效的语法。如果您需要它们指示优先级,则应该使用嵌套的if标记
for标签
语法:
{% for 变量 in 可迭代对象 %}
... 循环语句
{% empty %}
... 可迭代对象无数据时填充的语句
{% endfor %}