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

詳解Django模板層過濾器和繼承的問題

 更新時(shí)間:2021年07月08日 15:18:41   作者:Neptuneyut  
今天抽空給大家介紹Django模板層過濾器和繼承的問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

過濾器

模板層對(duì)變量的操作實(shí)際還有很多,過濾器就是其中一種。學(xué)過Linux系統(tǒng)的一定知道管道操作符,其可以將上一步輸出直接作為下一步輸入進(jìn)行處理,這里的過濾器就是類似管道符,其寫法也是以管道符|為標(biāo)志,允許我們對(duì)模板層獲得的變量進(jìn)行改變,例如大小寫轉(zhuǎn)換、增減大小等等

語法

{{ 變量|過濾器1|過濾器2:'值' |...}}

這里的過濾器可以分為兩類,一類是不帶參數(shù)的,例如lower,upper,safe;一類是帶參數(shù)的add:'10',冒號(hào)分隔,后面跟上值

過濾器 示例 說明
lower {{str lower}}
upper {{str upper}}
safe {{script safe}}
add {{num add:‘10'}}

示例:
views.py

def home(request):

    dic = {}
    dic['str'] = 'abc'
    dic['num'] = 90
    dic['script'] = '<script>alert("這是測(cè)試過濾器safe")</script>' #簡(jiǎn)單的js代碼,可以彈出一個(gè)窗口
    return render(request, 'home.html', dic)

home.html

<body>
    <h2>過濾器upper: {{ str|upper }}</h2> # 全變成大寫字母
    <h2>過濾器add: {{ num|add:'10' }}</h2> # 加10
    <h2>過濾器safe: {{ script|safe }}</h2> # 不進(jìn)行html轉(zhuǎn)義,適用直接執(zhí)行js代碼,理解為代碼安全可以直接執(zhí)行
</body>

在這里插入圖片描述

在這里插入圖片描述

如果不適用safe則輸出原始字符串,不會(huì)執(zhí)行js代碼

在這里插入圖片描述

除了以上過濾器,更多過濾器請(qǐng)參見https://docs.djangoproject.com/zh-hans/3.2/ref/templates/builtins

繼承

對(duì)于某個(gè)網(wǎng)站來說,一般又比較統(tǒng)一的風(fēng)格,例如無論點(diǎn)擊網(wǎng)頁(yè)哪個(gè)標(biāo)簽或者鏈接,導(dǎo)航欄和尾部都是基本一樣的內(nèi)容,真正變的是中間的內(nèi)容區(qū)域,如何才能讓不同的網(wǎng)頁(yè)有相同也有差異呢,django中對(duì)模板可以使用繼承的概念。
例如,有如下頁(yè)面,由三部分組成,第一塊是導(dǎo)航欄,無論哪個(gè)子頁(yè)面均是一樣,中間body區(qū)會(huì)因?yàn)辄c(diǎn)擊導(dǎo)航欄不同項(xiàng)目發(fā)生變化,而最后一塊尾部每個(gè)頁(yè)面都是一樣,如何實(shí)現(xiàn)上述要求呢?

在這里插入圖片描述

  • 求同:Django模板層通過{% extends 'home.html' %}實(shí)現(xiàn)子頁(yè)面對(duì)home.html的繼承,也就是說只需要在每個(gè)子頁(yè)面寫上該行代碼即能完成對(duì)父頁(yè)面的繼承,但是需要注意的是不能繼承父頁(yè)面的相關(guān)視圖函數(shù)的變量
  • 存異:在父頁(yè)面(home.html)中使用{% block block_name %}...{% endblock block_name(可選) %}標(biāo)記塊,凡是在標(biāo)記塊中的內(nèi)容在子頁(yè)面都可以被修改,修改方法是在{% block block_name %}子頁(yè)面重寫內(nèi)容{% endblock block_name(可選) %}塊中重新更改內(nèi)容即可

home.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
    <!-- 導(dǎo)航欄,每個(gè)頁(yè)面都一樣 -->
    <h2>
        <a href="/home" rel="external nofollow" >主頁(yè)</a>
        <a href="/music" rel="external nofollow" >音樂頻道</a>
        <a href="/sport" rel="external nofollow" >運(yùn)動(dòng)頻道</a>
    </h2>
    <h2>
        {% block body %}
        <h2>歡迎來到主頁(yè)?。ㄔ摬糠謪^(qū)域因頁(yè)面而異)</h2>
        {% endblock %}
        <h3>如有問題請(qǐng)請(qǐng)聯(lián)系xxx@163.com(每個(gè)頁(yè)面都一樣)</h3>
</body>

</html>

music.html

{% extends 'home.html' %}

<!-- 修改body區(qū)域內(nèi)容 -->
{% block body %}
<h2>歡迎來到音樂頻道!</h2>
{% endblock %}

sport.html

{% extends 'home.html' %}

<!-- 修改body區(qū)域內(nèi)容 -->
{% block body %}
<h2>歡迎來到運(yùn)動(dòng)頻道!</h2>
{% endblock %}

views.py

import re
from django.http import HttpResponse
from django.shortcuts import render

def home(request):
    return render(request, 'home.html', dic)
def music(request):

    return render(request, 'music.html')
def sport(request):

    return render(request, 'sport.html')

urls.py

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home),
    path('music/', views.music),
    path('sport/', views.sport),
]

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

學(xué)到這里,大家又可以小激動(dòng)一下了,一個(gè)靜態(tài)網(wǎng)頁(yè)的基本架構(gòu)慢慢成熟起來,將一個(gè)主頁(yè)應(yīng)用到其他頁(yè)面,同時(shí)又保持其他頁(yè)面的差異,django的模板思想越來越清晰了。

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

相關(guān)文章

  • python 時(shí)間的訪問和轉(zhuǎn)換 time示例小結(jié)

    python 時(shí)間的訪問和轉(zhuǎn)換 time示例小結(jié)

    Python 的 time 模塊提供了各種與時(shí)間處理相關(guān)的功能,包括獲取當(dāng)前時(shí)間、操作日期/時(shí)間以及執(zhí)行與時(shí)間相關(guān)的各種其它功能,這篇文章主要介紹了python 時(shí)間的訪問和轉(zhuǎn)換 time,需要的朋友可以參考下
    2024-05-05
  • python寫完程序怎么運(yùn)行的兩種方式

    python寫完程序怎么運(yùn)行的兩種方式

    這篇文章主要介紹了Python的兩種運(yùn)行方式,分別是命令行和交互式命令行,并詳細(xì)講解了如何在命令行和交互式命令行中運(yùn)行Python代碼,需要的朋友可以參考下
    2025-03-03
  • Python實(shí)現(xiàn)蒙特卡洛模擬的示例代碼

    Python實(shí)現(xiàn)蒙特卡洛模擬的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)蒙特卡洛模擬,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下
    2023-03-03
  • Pandas讀存JSON數(shù)據(jù)操作示例詳解

    Pandas讀存JSON數(shù)據(jù)操作示例詳解

    這篇文章主要為大家介紹了Pandas讀存JSON數(shù)據(jù)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • CNN卷積函數(shù)Conv2D()各參數(shù)的含義及用法解讀

    CNN卷積函數(shù)Conv2D()各參數(shù)的含義及用法解讀

    這篇文章主要介紹了CNN卷積函數(shù)Conv2D()各參數(shù)的含義及用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python+wxPython實(shí)現(xiàn)將圖片轉(zhuǎn)換為草圖

    Python+wxPython實(shí)現(xiàn)將圖片轉(zhuǎn)換為草圖

    將照片轉(zhuǎn)換為藝術(shù)風(fēng)格的草圖是一種有趣的方式,可以為您的圖像添加獨(dú)特的效果,本文主要介紹了如何Python和wxPython來實(shí)現(xiàn)這一目標(biāo),需要的可以參考下
    2023-08-08
  • Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼

    Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼

    這篇文章主要介紹了Python3讀取和寫入excel表格數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Python中等待5秒并暫停執(zhí)行的方法總結(jié)

    Python中等待5秒并暫停執(zhí)行的方法總結(jié)

    Python 具有各種功能和庫(kù)來創(chuàng)建交互式應(yīng)用程序,用戶可以在其中提供輸入和響應(yīng), 我們可以創(chuàng)建需要暫停應(yīng)用程序執(zhí)行的情況,本文主要和大家分享三個(gè)Python 中等待 5 秒并暫停執(zhí)行的方法,有需要的可以參考下
    2023-10-10
  • Python實(shí)現(xiàn)搜索Google Scholar論文信息的示例代碼

    Python實(shí)現(xiàn)搜索Google Scholar論文信息的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)搜索Google Scholar論文信息的功能,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2023-03-03
  • python 將列表里的字典元素合并為一個(gè)字典實(shí)例

    python 將列表里的字典元素合并為一個(gè)字典實(shí)例

    這篇文章主要介紹了python 將列表里的字典元素合并為一個(gè)字典實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09

最新評(píng)論

乌海市| 馆陶县| 兴山县| 金塔县| 五家渠市| 美姑县| 迁安市| 本溪市| 松滋市| 蒲城县| 融水| 疏勒县| 抚顺市| 桦南县| 垫江县| 永春县| 临澧县| 南通市| 临安市| 蕉岭县| 青浦区| 汉阴县| 双流县| 当涂县| 苏尼特左旗| 石城县| 忻州市| 德保县| 中超| 阳朔县| 湾仔区| 穆棱市| 定兴县| 沂南县| 宜川县| 高雄市| 北京市| 桐柏县| 墨玉县| 涟水县| 扎兰屯市|