文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python Django框架介绍之模板标签及模板的继承

2024-04-02 19:55

关注

一、标签语法

由%}和 {% 来定义的,例如:{%tag%} {%endtag%},完整的标签有开始就有结束,如条件语句,有条件判断的开始,也对应有条件的结束。

二、常见标签

if条件判断

for循环

其他重要标签

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标签模板文件-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>if模板</title>
    <style>span{font-size: 40px;color: #d70b35;}</style>
</head>
<body>
    {% if name == "python" %}
        这是<span>{{name}}</span>页面
    {% elif name == "django" %}
        这是<span>{{name}}</span>页面
    {% else %}
        确定是<span>{{name}}</span>吗?
    {% endif %}
</body>
</html>

  

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标签模板文件-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>for模板</title>
    <style>a{font-size: 25px;}</style>
</head>
<body>
{% for i in ls %}
    {% if forloop.counter == 3 %}
        <a href="https://www.baidu.com" rel="external nofollow" >百度</a><br>
    {% else %}
        <a href="https://blog.csdn.net/" rel="external nofollow" >CSDN</a><br>
    {% endif %}
{% endfor %}
</body>
</html>

  

url页面转换标签例子

注意:亲测。。。使用url页面转换标签的时候,注意模板中的引用模板链接名称应该是urlpatterns中path的name的值,如果是直接使用接口名称会报错

错误演示

正确演示

代码


##  views.py文件
def testurl(request):
    return render(request,'URL页面转换.html')
 
##  urls.py 文件
urlpatterns = [path('testurl/', views.testurl),]

<!--  url标签模板文件  -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>URL页面转换</title>
    <style>
        a{font-size: 25px;color: #10e59d
        }
    </style>
</head>
<body>
    <a href="/index/" rel="external nofollow" >index模板</a><br>
    <a href="{% url 'temp' %}" rel="external nofollow" >使用ur标签temp模板</a><br>
    <a href="{% url 'test' 999 %}" rel="external nofollow" >使用url标签进行添加参数传递</a>
</body>
</html>

四、模板的继承

Django模版引擎中最强大也是最复杂的部分就是模版继承了。使用模板的作用在于提高代码的复用性。 模版继承可以让你创建一个基本的“骨架”模版,它包含您站点中的全部元素,并且可以定义能够被子模版覆盖的 blocks。

模板继承使用extends标签实现。通过使用block来给子模板开放接口。

1、extends必须是模板中的第一个出现的标签。

2、子模板中的所有内容,必须出现在父模板定义好的block中,否则django将不会渲染。

3、如果出现重复代码,就应该考虑使用模板。

4、尽可能多的定义block,方便子模板实现更细的需求。

5、如果在某个block中,要使用父模板的内容,使用block.super获取。

代码例子


<!-- 模板的引用页 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>引用页</title>
    <style>
        .p2{
            font-size: 25px;
            color: blue;
        }
    </style>
</head>
<body>
    <h style="font-size:40px;color:red;">这是引用页的内容</h>
</body>
</html>

<!--  模板的继承页  -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{%  block title %}默认{% endblock %}</title>
    <style>
        .p1{font-size: 30px;color: #8dff50
    }
        span{
            font-size: 25px;
            color: darkkhaki;
        }
    </style>
</head>
<body>
{% block content %}
    <span>这是默认内容</span>
{% endblock %}
{% block demo %}
    <span>这是演示内容</span>
{% endblock %}
</body>
</html>

<!--  模板继承的主页  -->
{% extends '模板/继承页.html' %}
{% block title %}主页(继承与引用){%  endblock  %}
{% block content %}
    <p class="p1">这是通过继承父类的:{{ block.super }}</p><br>
    <p class="p1">这是子模版的内容,没有写block就不会显示</p><br>
{% endblock %}
{% block demo %}
    <p class="p2">这是通过include引用的其他模板的内容:{% include '模板/引用页.html' %}</p>
{% endblock %}

演示结果

通过设置css样式,可以看出,继承主页继承和引用了继承模板文件及引用模板文件中的css样式。

到此这篇关于Python Django框架介绍之模板标签及模板的继承的文章就介绍到这了,更多相关Django框架之模板标签及模板的继承内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯