濮阳杆衣贸易有限公司

主頁 > 知識庫 > Python Django框架介紹之模板標(biāo)簽及模板的繼承

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

熱門標(biāo)簽:河北防封卡電銷卡 開封語音外呼系統(tǒng)代理商 應(yīng)電話機器人打電話違法嗎 手機網(wǎng)頁嵌入地圖標(biāo)注位置 開封自動外呼系統(tǒng)怎么收費 天津電話機器人公司 400電話辦理哪種 電銷機器人的風(fēng)險 地圖標(biāo)注線上如何操作

一、標(biāo)簽語法

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

二、常見標(biāo)簽

if條件判斷

  • if/elif/else:可以使用and/or/in/not/==/!=/=/>=,來進行判斷。ifequal/ifnotequal

for循環(huán)

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

其他重要標(biāo)簽

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

url:返回一個命名了的URL的絕對路徑。

with:緩存一個變量。

autoescape:開啟和關(guān)閉自動轉(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>頁面
    {% elif name == "django" %}
        這是span>{{name}}/span>頁面
    {% 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頁面轉(zhuǎn)換標(biāo)簽例子

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

錯誤演示

正確演示

代碼

##  views.py文件
def testurl(request):
    return render(request,'URL頁面轉(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頁面轉(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)簽進行添加參數(shù)傳遞/a>
/body>
/html>

四、模板的繼承

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

模板繼承使用extends標(biāo)簽實現(xiàn)。通過使用block來給子模板開放接口。

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

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

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

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

5、如果在某個block中,要使用父模板的內(nèi)容,使用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;">這是引用頁的內(nèi)容/h>
/body>
/html>
!--  模板的繼承頁  -->
!DOCTYPE html>
html lang="en">
head>
    meta charset="UTF-8">
    title>{%  block title %}默認標(biāo)題{% endblock %}/title>
    style>
        .p1{font-size: 30px;color: #8dff50
    }
        span{
            font-size: 25px;
            color: darkkhaki;
        }
    /style>
/head>
body>
{% block content %}
    span>這是默認內(nèi)容/span>
{% endblock %}
{% block demo %}
    span>這是演示內(nèi)容/span>
{% endblock %}
/body>
/html>
!--  模板繼承的主頁  -->
{% extends '模板/繼承頁.html' %}
{% block title %}主頁(繼承與引用){%  endblock  %}
{% block content %}
    p class="p1">這是通過繼承父類的:{{ block.super }}/p>br>
    p class="p1">這是子模版的內(nèi)容,沒有寫block就不會顯示/p>br>
{% endblock %}
{% block demo %}
    p class="p2">這是通過include引用的其他模板的內(nèi)容:{% include '模板/引用頁.html' %}/p>
{% endblock %}

演示結(jié)果

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

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

您可能感興趣的文章:
  • python之django路由和視圖案例教程
  • python Django框架快速入門教程(后臺管理)
  • Python django中如何使用restful框架
  • Python Django搭建文件下載服務(wù)器的實現(xiàn)
  • 一篇文章帶你自學(xué)python Django

標(biāo)簽:常州 駐馬店 蘭州 六盤水 江蘇 宿遷 山東 成都

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python Django框架介紹之模板標(biāo)簽及模板的繼承》,本文關(guān)鍵詞  Python,Django,框架,介紹,之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python Django框架介紹之模板標(biāo)簽及模板的繼承》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python Django框架介紹之模板標(biāo)簽及模板的繼承的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    榆林市| 营口市| 黑水县| 府谷县| 湘西| 萨嘎县| 乌兰县| 永登县| 淮阳县| 满洲里市| 阿拉尔市| 缙云县| 酉阳| 白河县| 磐安县| 阿克陶县| 英超| 田林县| 富民县| 定远县| 临颍县| 山丹县| 本溪| 探索| 屏边| 莫力| 福贡县| 海南省| 沅陵县| 新兴县| 铜鼓县| 淮南市| 山阴县| 泸水县| 垦利县| 元氏县| 乐陵市| 东辽县| 绥中县| 湖口县| 万盛区|