一、常用标签
模板标签
标签在渲染的过程中提供任意的逻辑。这个定义是刻意模糊的。例如,一个标签可以输出内容,作为控制结构,例如 “if”语句或“for”循环从数据库中提取内容,甚至可以访问其他的模板标签。
标签语法:由{% %}来定义的,例如:{% tag %} {% endtag %}
常用标签
1、 if/elif/else:可以使用and/or/in/not/==/!=/<=/>=,来进行判断。ifequal/ifnotequal li = ['x', 'y', 'z']
2、 for...in...:跟python中的for...in...用法一样。
forloop.counter:当前迭代的次数,下标从1开始。 1,2,3
forloop.counter0:当前迭代的次数,下标从0开始。0,1,2
forloop.revcounter:当前迭代的次数,下标从大到小。3,2,1
forloop.revcounter0:当前迭代的次数,下标从大到小。2,1,0
forloop.first:返回bool类型,如果是第一次迭代,返回True,否则返回Flase。
forloop.last:返回bool类型,如果是最后一次迭代,返回True,否则返回Flase。
forloop.parentloop:如果发送多层for循环嵌套,那么这个变量返回的是上一层的for。
3、 for...in...empty...:如果没有数据,跳转到empty中。
4、 load:加载第三方标签,最常用的是{% load static %}。
5、 url:返回一个命名了的URL的绝对路径。
6、 with:缓存一个变量。
7、 autoescape:开启和关闭自动转义。
<!--if的例子--> {% if name == 'python' %} 这个是python的页面 {% elif name == 'django' %} 这个是django的页面 {% else %} 哈哈哈! 是{{ name }}的呢! {% endif %} <!--for的例子--> {% for i in ls %} {% if forloop.counter == 1 %} <li>这个是第一个值</li> {% else %} <li>{{ i }}</li> {% endif %} {% endfor %} <!--url页面转换的例子--> <!--urls.py文件代码--> path('index5/', views.index_5), path('article_new/', views.article_new, name='new_article'), path('test/<int:t_id>/', views.test, name='test'), <!--html代码 --> <a href="/book/index5/">到过滤器那个页面</a><br> <a href="{% url 'new_article' %}">新的文章</a><br> <a href="{% url 'test' 123 %}">url加参数传递</a><br> <!--with的使用 --> {% with test_name as tn %} 11111{{ tn }}<br> 22222{{ tn }} {% endwith %} <!--autowscape的使用 --> 原始的:{{ html }}<br> 过滤器方式:{{ html |safe }}<br> 标签方式: {% autoescape off %} {{ html }}<br> {% endautoescape %}
二、模板的继承与引用
Django模板引擎中最强大也是最复杂的部分就是模板继承了。模板继承可以让你创建一个基本“骨架”模版。它包含你站点的全部元素,并且可以定义能够被子模版覆盖的blocks。
1. 创建三个模板文件,base.html, indexxx.html, ss.html
2. base.html中的内容
3. ss.html中的内容
4. indexxx.html中的内容
模板继承的总结
模板基础层使用extends标签实现。通过使用block来给子模版开放接口。
1. extends必须是模板中的第一个出现的标签。
2. 子模版中的所有内容,必须出现在父模板定义好的block中,否则django将不会渲染。
3. 如果出现重复代码,就应该考虑使用模板。
4. 尽可能多的定义block,方便子模板实现更细的需求。
5. 如果在某个block中,要使用父模板的内容,使用block.super获取。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理