最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Django框架介紹之模板標(biāo)簽及模板的繼承

 更新時(shí)間:2021年05月27日 16:11:43   作者:覓遠(yuǎn)  
今天給大家?guī)?lái)Python Django框架的相關(guān)知識(shí),文中對(duì)模板標(biāo)簽及模板的繼承介紹的非常詳細(xì),對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下

一、標(biāo)簽語(yǔ)法

由%}和 {% 來(lái)定義的,例如:{%tag%} {%endtag%},完整的標(biāo)簽有開(kāi)始就有結(jié)束,如條件語(yǔ)句,有條件判斷的開(kāi)始,也對(duì)應(yīng)有條件的結(jié)束。

二、常見(jiàn)標(biāo)簽

if條件判斷

  • if/elif/else:可以使用and/or/in/not/==/!=/<=/>=,來(lái)進(jìn)行判斷。ifequal/ifnotequal

for循環(huán)

  • for ... in ...:和python中的用法一樣。
  • forloop.counter:當(dāng)前迭代的次數(shù),下標(biāo)從1開(kāi)始。1,2,3....
  • forloop.counter0:當(dāng)前迭代的次數(shù),下標(biāo)從0開(kāi)始。指定下標(biāo),上面一種不指定的默認(rèn)從1開(kāi)始
  • forloop.revcounter:與forloop.counter一樣,不同在于下標(biāo)呈倒序,從大到小。
  • forloop.revcounter0:forloop.counter0一樣,不同在于下標(biāo)呈倒序,從大到小。
  • forloop.frist:返回一個(gè)布爾值,如果是第一次迭代,返回true,否則返回false。
  • forloop.last:返回布爾值,如果是最后一次迭代,返回true,否則返回false
  • forloop.parentloop:如果發(fā)生多層for循環(huán)嵌套,那么這個(gè)變量返回的是上一層的for。
  • for...in...empty...:如果沒(méi)有數(shù)據(jù),跳到empty中。

其他重要標(biāo)簽

load:加載第三方標(biāo)簽。常見(jiàn)用的是{% load static%}

url:返回一個(gè)命名了的URL的絕對(duì)路徑。

with:緩存一個(gè)變量。

autoescape:開(kāi)啟和關(guān)閉自動(dòng)轉(zhuǎn)義。

三、標(biāo)簽例子

if條件標(biāo)簽代碼例子

#  views.py文件
def testif(request):
    complex = {
        'name':'python',
    }
    return render(request,'標(biāo)簽-if.html',complex)
 
#  urls.py文件
urlpatterns = [path('testif/', views.testif),]
<!--if標(biāo)簽?zāi)0逦募?->
<!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>頁(yè)面
    {% elif name == "django" %}
        這是<span>{{name}}</span>頁(yè)面
    {% else %}
        確定是<span>{{name}}</span>嗎?
    {% endif %}
</body>
</html>

  

for 循環(huán)標(biāo)簽代碼例子

#  views.py文件
def testfor(request):
    ls = ['1','2','3','4','5']
    complex ={
        'ls':ls,
    }
    return render(request,'標(biāo)簽-for.html',complex)
 
#  urls.py文件
urlpatterns = [path('testfor/', views.testfor),]
<!--for標(biāo)簽?zāi)0逦募?->
<!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  rel="external nofollow" >百度</a><br>
    {% else %}
        <a  rel="external nofollow" >CSDN</a><br>
    {% endif %}
{% endfor %}
</body>
</html>

  

url頁(yè)面轉(zhuǎn)換標(biāo)簽例子

注意:親測(cè)。。。使用url頁(yè)面轉(zhuǎn)換標(biāo)簽的時(shí)候,注意模板中的引用模板鏈接名稱應(yīng)該是urlpatterns中path的name的值,如果是直接使用接口名稱會(huì)報(bào)錯(cuò)

錯(cuò)誤演示

正確演示

代碼

##  views.py文件
def testurl(request):
    return render(request,'URL頁(yè)面轉(zhuǎn)換.html')
 
##  urls.py 文件
urlpatterns = [path('testurl/', views.testurl),]
<!--  url標(biāo)簽?zāi)0逦募? -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>URL頁(yè)面轉(zhuǎn)換</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標(biāo)簽temp模板</a><br>
    <a href="{% url 'test' 999 %}" rel="external nofollow" >使用url標(biāo)簽進(jìn)行添加參數(shù)傳遞</a>
</body>
</html>

四、模板的繼承

Django模版引擎中最強(qiáng)大也是最復(fù)雜的部分就是模版繼承了。使用模板的作用在于提高代碼的復(fù)用性。 模版繼承可以讓你創(chuàng)建一個(gè)基本的“骨架”模版,它包含您站點(diǎn)中的全部元素,并且可以定義能夠被子模版覆蓋的 blocks。

模板繼承使用extends標(biāo)簽實(shí)現(xiàn)。通過(guò)使用block來(lái)給子模板開(kāi)放接口。

1、extends必須是模板中的第一個(gè)出現(xiàn)的標(biāo)簽。

2、子模板中的所有內(nèi)容,必須出現(xiàn)在父模板定義好的block中,否則django將不會(huì)渲染。

3、如果出現(xiàn)重復(fù)代碼,就應(yīng)該考慮使用模板。

4、盡可能多的定義block,方便子模板實(shí)現(xiàn)更細(xì)的需求。

5、如果在某個(gè)block中,要使用父模板的內(nèi)容,使用block.super獲取。

代碼例子

<!-- 模板的引用頁(yè) -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>引用頁(yè)</title>
    <style>
        .p2{
            font-size: 25px;
            color: blue;
        }
    </style>
</head>
<body>
    <h style="font-size:40px;color:red;">這是引用頁(yè)的內(nèi)容</h>
</body>
</html>
<!--  模板的繼承頁(yè)  -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{%  block title %}默認(rèn)標(biāo)題{% endblock %}</title>
    <style>
        .p1{font-size: 30px;color: #8dff50
    }
        span{
            font-size: 25px;
            color: darkkhaki;
        }
    </style>
</head>
<body>
{% block content %}
    <span>這是默認(rèn)內(nèi)容</span>
{% endblock %}
{% block demo %}
    <span>這是演示內(nèi)容</span>
{% endblock %}
</body>
</html>
<!--  模板繼承的主頁(yè)  -->
{% extends '模板/繼承頁(yè).html' %}
{% block title %}主頁(yè)(繼承與引用){%  endblock  %}
{% block content %}
    <p class="p1">這是通過(guò)繼承父類的:{{ block.super }}</p><br>
    <p class="p1">這是子模版的內(nèi)容,沒(méi)有寫(xiě)block就不會(huì)顯示</p><br>
{% endblock %}
{% block demo %}
    <p class="p2">這是通過(guò)include引用的其他模板的內(nèi)容:{% include '模板/引用頁(yè).html' %}</p>
{% endblock %}

演示結(jié)果

通過(guò)設(shè)置css樣式,可以看出,繼承主頁(yè)繼承和引用了繼承模板文件及引用模板文件中的css樣式。

到此這篇關(guān)于Python Django框架介紹之模板標(biāo)簽及模板的繼承的文章就介紹到這了,更多相關(guān)Django框架之模板標(biāo)簽及模板的繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python調(diào)用cmd命令行制作刷博器

    python調(diào)用cmd命令行制作刷博器

    這篇文章主要介紹了Python制作一個(gè)簡(jiǎn)單的刷博器,可以學(xué)習(xí)Python線程、調(diào)用cmd命令行、打開(kāi)網(wǎng)頁(yè)的知識(shí)點(diǎn),大家參考使用吧
    2014-01-01
  • python使用numpy實(shí)現(xiàn)直方圖反向投影示例

    python使用numpy實(shí)現(xiàn)直方圖反向投影示例

    今天小編就為大家分享一篇python使用numpy實(shí)現(xiàn)直方圖反向投影示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作

    python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作

    這篇文章主要介紹了python 經(jīng)緯度求兩點(diǎn)距離、三點(diǎn)面積操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python異常處理與反射相關(guān)問(wèn)題總結(jié)

    Python異常處理與反射相關(guān)問(wèn)題總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著Python異常處理與反射展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • jupyter notebook插入本地圖片的實(shí)現(xiàn)

    jupyter notebook插入本地圖片的實(shí)現(xiàn)

    這篇文章主要介紹了jupyter notebook插入本地圖片的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python使用正則匹配實(shí)現(xiàn)抓圖代碼分享

    Python使用正則匹配實(shí)現(xiàn)抓圖代碼分享

    本文給大家分享的是個(gè)人的第一個(gè)作品,使用Python正則匹配實(shí)現(xiàn)抓圖代碼,非常的簡(jiǎn)單實(shí)用,推薦給大家,小伙伴們可以自由擴(kuò)展下。
    2015-04-04
  • Pytorch釋放顯存占用方式

    Pytorch釋放顯存占用方式

    今天小編就為大家分享一篇Pytorch釋放顯存占用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python學(xué)習(xí)之虛擬環(huán)境原理詳解

    Python學(xué)習(xí)之虛擬環(huán)境原理詳解

    本文將帶大家學(xué)習(xí)一下虛擬環(huán)境的相關(guān)知識(shí),虛擬環(huán)境對(duì)于剛剛使用Python的初學(xué)者來(lái)說(shuō)使用的概率可能會(huì)比較低,但是我們依然要對(duì)它有一定的了解。快跟隨小編一起學(xué)習(xí)一下吧
    2022-03-03
  • Python并行計(jì)算庫(kù)Joblib高效使用指北

    Python并行計(jì)算庫(kù)Joblib高效使用指北

    Joblib是用于高效并行計(jì)算的Python開(kāi)源庫(kù),其提供了簡(jiǎn)單易用的內(nèi)存映射和并行計(jì)算的工具,以將任務(wù)分發(fā)到多個(gè)工作進(jìn)程中,這篇文章主要介紹了Python并行計(jì)算庫(kù)Joblib使用指北,需要的朋友可以參考下
    2024-08-08
  • Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國(guó)疫情分布的代碼實(shí)例

    Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國(guó)疫情分布的代碼實(shí)例

    在本篇文章里小編給大家整理了一篇關(guān)于Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國(guó)疫情分布的代碼實(shí)例,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02

最新評(píng)論

兰坪| 宜章县| 格尔木市| 山西省| 大港区| 舒城县| 丹巴县| 疏附县| 长海县| 门头沟区| 静安区| 通榆县| 宁波市| 明溪县| 大丰市| 林口县| 芮城县| 米脂县| 普安县| 云霄县| 廊坊市| 丁青县| 长泰县| 大厂| 珠海市| 桐庐县| 隆德县| 鹤庆县| 获嘉县| 林州市| 洪江市| 永年县| 青岛市| 镇康县| 绍兴县| 册亨县| 瓦房店市| 长沙县| 子洲县| 汽车| 德阳市|