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

django template 模板渲染的實(shí)現(xiàn)

 更新時(shí)間:2025年01月07日 10:47:00   作者:耿雨飛  
Django 的模板系統(tǒng)旨在使設(shè)計(jì)人員能夠編寫 HTML,同時(shí)以一種安全和靈活的方式動(dòng)態(tài)顯示數(shù)據(jù),本文主要介紹了django template模板渲染的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

前言

Django 的模板系統(tǒng)是一個(gè)強(qiáng)大的工具,它將視圖邏輯與頁(yè)面設(shè)計(jì)分開,使得前后端開發(fā)人員可以在同一項(xiàng)目中高效協(xié)作。以下是對(duì) Django 模板渲染功能的詳細(xì)解析。

Django 模板系統(tǒng)概述

Django 的模板系統(tǒng)旨在使設(shè)計(jì)人員能夠編寫 HTML,同時(shí)以一種安全和靈活的方式動(dòng)態(tài)顯示數(shù)據(jù)。這種分離關(guān)注點(diǎn)的設(shè)計(jì)允許后端開發(fā)人員處理業(yè)務(wù)邏輯,而模板專注于數(shù)據(jù)的展示。

模板文件

  • 位置: 通常,模板文件(.html)存放在名為 templates 的目錄下。該目錄可以在應(yīng)用的目錄結(jié)構(gòu)中,也可以是全局項(xiàng)目中指定的模板目錄。

  • 配置: 在 settings.py 文件中設(shè)置 TEMPLATES,Django 查找模板文件的位置。

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

模板語(yǔ)法

變量: 使用雙大括號(hào) {{ }} 包裹變量名以顯示變量的值。

<p>Hello, {{ user.username }}!</p>

過(guò)濾器: 用管道符 | 結(jié)合過(guò)濾器對(duì)變量進(jìn)行格式化或修改。

<p>Current time: {{ current_time|date:"F j, Y, P" }}</p>

Django 自帶許多內(nèi)置過(guò)濾器,如 dateupperlength 等。

標(biāo)簽: 使用 {% %} 包圍的標(biāo)簽來(lái)實(shí)現(xiàn)邏輯操作,控制流或加載模板庫(kù)。

{% if user.is_authenticated %}
    <p>Welcome back, {{ user.username }}!</p>
{% else %}
    <p>Please log in.</p>
{% endif %}

{% for item in item_list %}
    <li>{{ item.name }}</li>
{% endfor %}

注釋: 模板注釋不會(huì)輸出到生成的 HTML,使用 {# #} 注釋文本。

{# This is a comment #}

模板繼承

Django 支持模板繼承,使得代碼更易維護(hù)和復(fù)用。

父模板: 通常定義一個(gè)基本布局,使用 {% block %} 標(biāo)簽定義可重寫的區(qū)域。

<!-- base.html -->
<html>
<head>
    <title>{% block title %}Default Title{% endblock %}</title>
</head>
<body>
    <header>{% block header %}{% endblock %}</header>
    <main>{% block content %}{% endblock %}</main>
    <footer>{% block footer %}Default Footer{% endblock %}</footer>
</body>
</html>

子模板: 繼承基礎(chǔ)模板,并重寫定義的塊。

{% extends "base.html" %}

{% block title %}Page Title{% endblock %}

{% block content %}
    <p>This is the page-specific content.</p>
{% endblock %}

包含模板

使用 {% include %} 標(biāo)簽將一個(gè)模板文件包含在另一個(gè)模板中,適用于重復(fù)出現(xiàn)的頁(yè)面片段。

<div class="sidebar">
    {% include 'sidebar.html' %}
</div>

上下文處理器

  • 上下文處理器是一個(gè)可選的鉤子,用于將特定變量自動(dòng)添加到每個(gè)模板的上下文中。通過(guò)修改 TEMPLATES 的 OPTIONS 來(lái)注冊(cè)。

  • 常用的上下文處理器包括 requeststatic 和 auth 等,這些處理器可以使得模板中訪問(wèn)全局變量變得更簡(jiǎn)便。

安全性

  • Django 模板系統(tǒng)默認(rèn)防止跨站腳本攻擊(XSS),對(duì)輸出的文本會(huì)進(jìn)行自動(dòng)轉(zhuǎn)義。

  • 可以使用 safe 過(guò)濾器對(duì)已知安全的字符串進(jìn)行手動(dòng) unescape。

<p>{{ user_input|safe }}</p>

渲染過(guò)程

視圖加載模板: 在視圖函數(shù)或類視圖中,使用 render 方法加載和渲染模板。

from django.shortcuts import render

def my_view(request):
    return render(request, 'my_template.html', {'key': 'value'})

返回 HttpResponse: 渲染過(guò)程生成 HTML,并以 HttpResponse 形式返回給客戶端。

總結(jié)

Django 的模板系統(tǒng)通過(guò)直觀的語(yǔ)法和強(qiáng)大的功能分離了表現(xiàn)層和業(yè)務(wù)邏輯,使得開發(fā)過(guò)程更簡(jiǎn)潔和易維護(hù)。無(wú)論是簡(jiǎn)單的靜態(tài)展示還是復(fù)雜的動(dòng)態(tài)頁(yè)面,Django 的模板都提供了足夠的靈活性和安全性來(lái)應(yīng)對(duì)各種需求。通過(guò)模板繼承、過(guò)濾器和標(biāo)簽,開發(fā)者可以高效地構(gòu)建精美的用戶界面并確保代碼的可重用性。

到此這篇關(guān)于django template 模板渲染的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)django template 模板渲染內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?pycharm讀取文件相對(duì)路徑與絕對(duì)路徑的方法

    Python?pycharm讀取文件相對(duì)路徑與絕對(duì)路徑的方法

    這篇文章主要給大家介紹了關(guān)于Python?pycharm讀取文件相對(duì)路徑與絕對(duì)路徑的方法,絕對(duì)路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進(jìn)行一級(jí)級(jí)目錄指向文件,相對(duì)路徑就是以當(dāng)前文件為基準(zhǔn)進(jìn)行一級(jí)級(jí)目錄指向被引用的資源文件,需要的朋友可以參考下
    2023-12-12
  • 淺談pytorch池化maxpool2D注意事項(xiàng)

    淺談pytorch池化maxpool2D注意事項(xiàng)

    今天小編就為大家分享一篇淺談pytorch池化maxpool2D注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • pycharm永久激活方法

    pycharm永久激活方法

    這篇文章給大家介紹了pycharm永久激活碼,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,對(duì)pycharm激活碼相關(guān)知識(shí)感興趣的朋友一起看看吧
    2020-01-01
  • Python統(tǒng)計(jì)中文詞頻的四種方法小結(jié)

    Python統(tǒng)計(jì)中文詞頻的四種方法小結(jié)

    統(tǒng)計(jì)中文詞頻是Python考試中常見(jiàn)的操作,本文我們總結(jié)了四種常見(jiàn)的中文詞頻統(tǒng)計(jì)方法,并列出代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 在OpenCV里使用特征匹配和單映射變換的代碼詳解

    在OpenCV里使用特征匹配和單映射變換的代碼詳解

    這篇文章主要介紹了在OpenCV里使用特征匹配和單映射變換的方法,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • python爬蟲scrapy框架的梨視頻案例解析

    python爬蟲scrapy框架的梨視頻案例解析

    這篇文章主要介紹了python爬蟲scrapy框架的梨視頻案例解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • C++和python實(shí)現(xiàn)阿姆斯特朗數(shù)字查找實(shí)例代碼

    C++和python實(shí)現(xiàn)阿姆斯特朗數(shù)字查找實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于C++和python實(shí)現(xiàn)阿姆斯特朗數(shù)字查找的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python面向?qū)ο髮?shí)現(xiàn)方法總結(jié)

    Python面向?qū)ο髮?shí)現(xiàn)方法總結(jié)

    這篇文章主要介紹了Python面向?qū)ο髮?shí)現(xiàn)方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python使用Plotly繪圖工具繪制散點(diǎn)圖、線形圖

    python使用Plotly繪圖工具繪制散點(diǎn)圖、線形圖

    這篇文章主要為大家詳細(xì)介紹了python使用Plotly繪圖工具繪制散點(diǎn)圖、線形圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python跳出雙層循環(huán)的方法

    python跳出雙層循環(huán)的方法

    本文主要介紹了python跳出雙層循環(huán)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評(píng)論

深州市| 武宣县| 南皮县| 龙里县| 丘北县| 墨脱县| 德清县| 开化县| 苍溪县| 怀来县| 衡南县| 简阳市| 都兰县| 永清县| 上杭县| 沂水县| 四会市| 石门县| 根河市| 兰西县| 嘉定区| 米易县| 清原| 黄大仙区| 井陉县| 斗六市| 马龙县| 射洪县| 调兵山市| 邢台市| 尼木县| 土默特左旗| 衡山县| 嵊州市| 修文县| 沈阳市| 略阳县| 嘉定区| 福海县| 获嘉县| 原平市|