一、常用标签
模板标签:标签在渲染的过程中提供任意的逻辑
标签语法:由{% %} 来定义,例如:{%tag%} {%endtag%}
模板标签的例子:
1. if
{% if name == 'python' %}
这个是python的页面
{% elif name == 'dhango' %}
这是django的页面
{% else %}
哈哈哈 是{{ name }}的呢
{% endif %}
2. for
{% for i in ls %} {% if forloop.counter == 1 %} <li>这个是第一个值{{ i }}</li> {% else %} <li>{{ i }}</li> {% endif %} {% endfor %}
3. url页面转换的例子
path(‘index5/’, views.index_5), path('article_new/', views.article_new, name='new_article'), path('test/<int:t_id>/', views.test, name='test')
<a href="/book/index5/">到过滤器那个页面</a><br> <a href="{% url 'new_article' %}">新的文章的</a><br> # url无参数传递 <a href="{% url 'test' 123 %}">url加参数传递</a> # url有参数传递,在参数的传递中,因点击a标签时不能直接输入对应参数,所以需要在a标签中添加对应的参数,便于views.py文件进行识别传递
4. with
{% with test_name as tn %} 11111{{ tn }} <br> 22222{{ tn }} {% endwith %}
5. autoescape
原始的: {{ html }} <br> 过滤器方式: {{ html |safe }}<br> 标签方式: {% autoescape off %} {{ html }} <br> {% endautoescape %}
6. 注释标签
{#注释标签,单行注释#}
{% comment %}
被注释的内容
多行注释
{% endcoment %}
二、模板的继承与引用
Django模版引擎中最强大也是最复杂的部分就是模版继承。模版继承可以让你创建一个基本的“骨架”模版,它包含你站点中的全部元素,并且可以定义能够被子模版覆盖的blocks。
模板基础的例子
1. 创建是哪个模板文件,base.html 模板继承页, indexxx.html 在这个模板中实现继承和引用, ss.html 模板的引用页
2. base.html的内容,首先在base.html文件尽可能多的使用{% block %} {% endblock %},这样在子项目继承时,可能更细化的继承父模板的各个项目
2. ss.html的内容
<!DOCTYPE html> <html lang="en"> > <head> <meta chaerset="UTF-8"> <title>{% blcok title %}ss页面{% endblock %}</title> </head> <body> {% block ss %} 这是ss页面内容! {% endblock %} </body> </html>
3. indexxx.html的内容,首先给出继承的父模板{% extends ‘base.html’ %} 然后采用{% block %}[修改内容]{% endblock %},继承父模板的格式并进行对应内容修改
# 接上图
{% block demo %}
这是demo修改后的演示内容!
{% include 'ss.html' %} # 使用include导入需要引用的模版
{% block ss %}
这是在include导入ss.html模板后,引用其ss格式并修改后的内容!
{% endblock %}
{% endblock %}
总结:
模板继承使用extends标签实现。通过使用block来给子模板开放接口。
1. extengs必须是模板中的第一个出现的标签
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编程运行原理