锋哥原创的Python Web开发 Django5视频教程:
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计33条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/标签是对模板上下文进行控制输出,它是以{% tag %}表示的,其中 tag是标签的名称,Django内置了许多模板标签,比如{% if %}(判断标签)、{% for %}(循环标签)或{% url %}(路由标签)等。
常用内置标签如下:
标签 | 描述 |
---|---|
{% for %} | 遍历输出上下文的内容 |
{% if %} | 对上下文进行条件判断 |
{% csrf_token %} | 生成csrf token的标签,用于防护跨站请求伪造攻击 |
{% url %} | 引用路由配置的地址,生成相应的路由地址 |
{% with %} | 将上下文名重新命名 |
{% load %} | 加载导入 Django的标签库 |
{% static %} | 读取静态资源的文件内容 |
{% extends xxx %} | 模板继承,xxx为模板文件名,使当前模板继承xxx模板 |
{% block xxx %} | 重写父类模板的代码 |
在for标签中,模板还提供了一些特殊的变量来获取for标签的循环信息,变量说明如下:
变量 | 描述 |
---|---|
forloop.counter | 获取当前循环的索引,从1开始计算 |
forloop.counter0 | 获取当前循环的索引,从0开始计算 |
forloop.revcounter | 索引从最大数开始递减,直到索引到1位置 |
forloop.revcounter0 | 索引从最大数开始递减,直到索引到0位置 |
forloop.first | 当遍历的元素为第一项时为真 |
forloop.last | 当遍历的元素为最后一项时为真 |
forloop.parentloop | 在嵌套的for循环中,获取上层for循环的forloop |
我们修改index.html:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
字符串:{{ msg }}<br>
字典类型:{{ msg2.tom }},{{ msg2.cat }},{{ msg2.wzw }}<br>
对象:{{ msg3.name }},{{ msg3.age }}<br>
列表:{{ msg4.0 }},{{ msg4.1 }},{{ msg4.3 }},{{ msg4.2 }}<br>
元组:{{ msg5.0 }},{{ msg5.4 }},{{ msg5.1 }},{{ msg5.2 }},{{ msg5.3 }}<h3>模板标签</h3>
<p>遍历for标签:</p>
{% for item in msg4 %}<p>这个是第{{ forloop.counter }}次循环</p>{% if forloop.first %}<p>这个是第一项:{{ item }}</p>{% elif forloop.last %}<p>这个是最后一项:{{ item }}</p>{% endif %}
{% endfor %}
<p>判断if标签:</p>
{% if msg == '模板变量' %}<p>模板变量</p>
{% elif msg == '模板变量2' %}<p>模板变量2</p>
{% else %}<p>其他</p>
{% endif %}
<p>url标签</p>
<a href="{% url 'index' %}">请求index</a>
<p>with标签</p>
{% with info=msg %}{{ info }}
{% endwith %}</body>
</html>
用url标签的时候 第二个参数是路由名称,所以urls.py里,修改下:
path('index/', helloWorld.views.index, name="index"),
测试,浏览器输入:http://127.0.0.1:8000/index/