本篇文章小编给大家分享一下Python Django框架介绍之模板标签及模板的继承代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
一、标签语法
由%}和 {% 来定义的,例如:{%tag%} {%endtag%},完整的标签有开始就有结束,如条件语句,有条件判断的开始,也对应有条件的结束。
二、常见标签
if条件判断
if/epf/else:可以使用and/or/in/not/==/!=/<=/>=,来进行判断。ifequal/ifnotequal
for循环
for ... in ...:和python中的用法一样。
forloop.counter:当前迭代的次数,下标从1开始。1,2,3....
forloop.counter0:当前迭代的次数,下标从0开始。指定下标,上面一种不指定的默认从1开始
forloop.revcounter:与forloop.counter一样,不同在于下标呈倒序,从大到小。
forloop.revcounter0:forloop.counter0一样,不同在于下标呈倒序,从大到小。
forloop.frist:返回一个布尔值,如果是第一次迭代,返回true,否则返回false。
forloop.last:返回布尔值,如果是最后一次迭代,返回true,否则返回false
forloop.parentloop:如果发生多层for循环嵌套,那么这个变量返回的是上一层的for。
for...in...empty...:如果没有数据,跳到empty中。
其他重要标签
load:加载第三方标签。常见用的是{% load static%}
url:返回一个命名了的URL的绝对路径。
with:缓存一个变量。
autoescape:开启和关闭自动转义。
三、标签例子
if条件标签代码例子
# views.py文件 def testif(request): complex = { 'name':'python', } return render(request,'标签-if.html',complex) # urls.py文件 urlpatterns = [path('testif/', views.testif),]
if模板 {% if name == "python" %} 这是{{name}}页面 {% elif name == "django" %} 这是{{name}}页面 {% else %} 确定是{{name}}吗? {% endif %}
for 循环标签代码例子
# views.py文件 def testfor(request): ls = ['1','2','3','4','5'] complex ={ 'ls':ls, } return render(request,'标签-for.html',complex) # urls.py文件 urlpatterns = [path('testfor/', views.testfor),]
for模板 {% for i in ls %} {% if forloop.counter == 3 %} 百度
{% else %} CSDN
{% endif %} {% endfor %}
url页面转换标签例子
注意:亲测。。。使用url页面转换标签的时候,注意模板中的引用模板链接名称应该是urlpatterns中path的name的值,如果是直接使用接口名称会报错
错误演示
正确演示
代码
## views.py文件 def testurl(request): return render(request,'URL页面转换.html') ## urls.py 文件 urlpatterns = [path('testurl/', views.testurl),]
URL页面转换 index模板
使用ur标签temp模板
使用url标签进行添加参数传递
四、模板的继承
Django模版引擎中最强大也是最复杂的部分就是模版继承了。使用模板的作用在于提高代码的复用性。 模版继承可以让你创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks。
模板继承使用extends标签实现。通过使用block来给子模板开放接口。
1、extends必须是模板中的第一个出现的标签。
2、子模板中的所有内容,必须出现在父模板定义好的block中,否则django将不会渲染。
3、如果出现重复代码,就应该考虑使用模板。
4、尽可能多的定义block,方便子模板实现更细的需求。
5、如果在某个block中,要使用父模板的内容,使用block.super获取。
代码例子
引用页 这是引用页的内容
{% block title %}默认标题{% endblock %} {% block content %} 这是默认内容 {% endblock %} {% block demo %} 这是演示内容 {% endblock %}
{% extends '模板/继承页.html' %} {% block title %}主页(继承与引用){% endblock %} {% block content %}这是通过继承父类的:{{ block.super }}
这是子模版的内容,没有写block就不会显示
{% endblock %} {% block demo %}这是通过include引用的其他模板的内容:{% include '模板/引用页.html' %}
{% endblock %}
演示结果
通过设置css样式,可以看出,继承主页继承和引用了继承模板文件及引用模板文件中的css样式。
太极熊猫2百度版 安卓版v1.7.1
下载黎明觉醒应用宝版 安卓版v1.111.1
下载暗影格斗3国际版 (Shadow Fight 3)最新版v1.40.3
下载王者战魂华为版 安卓版v3.6.1
下载放置魔法学院免广告版 v2.9.5
放置魔法学院内置Mod菜单是游戏的破解版本,在该版本中为玩家
万乘之国qq版本 安卓版v1.0.5
万乘之国qq版本是一款极具魅力的策略游戏,玩家们可以通过不同
动物餐厅国际服无限内购版 v12.9
动物餐厅国际服免广告版是游戏的破解版本,在该版本中为玩家去除
欧洲卡车司机 安卓版v3.2
欧洲卡车司机是款模拟经营游戏,这款游戏的画面还是蛮逼真的,给
疯狂大酒店 (Grand Hotel Mania)最新中文版v4.10.0.20
疯狂大酒店(Grand Hotel Mania)是一款好玩的