一周学会Django5 Python Web开发-Django5内置模板引擎-模板标签

发布于:2024-03-11 ⋅ 阅读:(56) ⋅ 点赞:(0)

锋哥原创的Python Web开发 Django5视频教程:

2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计33条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://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/


网站公告

今日签到

点亮在社区的每一天
去签到