1、视图向模板传变量-(返回模板变量)

1.1、编辑-视图层-视图函数-传递变量

编辑对应的子应用下的views.py文件,重新编写对应的视图函数

编辑前:旧的视图函数

  1. from django.shortcuts import render, HttpResponse
  2. import json
  3. # Create your views here.
  4. # 新增的视图函数
  5. def index(request):
  6. return render(request, "index.html")

视图函数中可以将Python变量封装到字典中,传递到模板里面

编辑后:新的视图函数

  1. from django.shortcuts import render, HttpResponse
  2. import json
  3. # Create your views here.
  4. # 新增的视图函数
  5. def index(request):
  6. data = {"blog_title":"我的博客"} # 将变量封装到字典中
  7. return render(request, "index.html",data)

重新编写这个视图函数后,

1.2、编辑-模板层-html模板-引用变量

在对应的index.html模板中 就可以使用 data里面的变量

  1. <a class="navbar-brand d-md-none d-lg-block" id="site-logo-name" href="/">
  2. <strong class="px-2">{{ blog_title }}</strong>
  3. </a>

如上在index.html模板中引用了 视图函数里面的变量 blog_tittle

模板中,我们可以使用{{ 变量名字 }}的语法,调用视图传进来的变量
引用方式:{{ 变量名字 }}
image.png

2、模板标签

作用:将一些服务端的功能嵌入到模板中,例如流程控制等
标签语法:

  1. {% 标签 %}
  2. ...
  3. {% 结束标签 %}

if标签

语法:

  1. {% if 条件表达式1 %}
  2. ...
  3. {% elif 条件表达式2 %}
  4. ...
  5. {% elif 条件表达式3 %}
  6. ...
  7. {% else %}
  8. ...
  9. {% endif %}

注意:

  • if条件表达式里可以用的运算符 | 比较(关系)运算符 | == != < > <= >= | | —- | —- | | 成员运算符 | in、not in | | 身份运算符 | is、is not | | 逻辑运算符 | and、or、not |

  • 在if标记中使用实际括号是无效的语法。如果您需要它们指示优先级,则应该使用嵌套的if标记

for标签

语法:

  1. {% for 变量 in 可迭代对象 %}
  2. ... 循环语句
  3. {% empty %}
  4. ... 可迭代对象无数据时填充的语句
  5. {% endfor %}