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

Python Django教程之模板的使用

 更新時(shí)間:2022年10月17日 16:59:37   作者:海擁  
模板是 Django MVT 結(jié)構(gòu)的第三個(gè)也是最重要的部分。Django中的模板基本上是用HTML,CSS和Javascript編寫在.html文件中的。本文將通過(guò)實(shí)例詳細(xì)聊聊Django模板的使用,感興趣的可以

前言

模板是 Django MVT 結(jié)構(gòu)的第三個(gè)也是最重要的部分。Django中的模板基本上是用HTML,CSS和Javascript編寫在.html文件中的。Django框架有效地處理和生成對(duì)最終用戶可見(jiàn)的動(dòng)態(tài)HTML網(wǎng)頁(yè)。Django主要使用后端,因此,為了提供前端并為我們的網(wǎng)站提供布局,我們使用模板。根據(jù)我們的需求,有兩種方法可以將模板添加到我們的網(wǎng)站。

我們可以使用單個(gè)模板目錄,該目錄將分布在整個(gè)項(xiàng)目中。

對(duì)于我們項(xiàng)目的每個(gè)應(yīng)用程序,我們可以創(chuàng)建一個(gè)不同的模板目錄。

對(duì)于我們當(dāng)前的項(xiàng)目,為了簡(jiǎn)單起見(jiàn),我們將創(chuàng)建一個(gè)將分布在整個(gè)項(xiàng)目中的單個(gè)模板目錄。應(yīng)用級(jí)模板通常用于大型項(xiàng)目,或者我們希望為網(wǎng)頁(yè)的每個(gè)組件提供不同的布局。

配置

Django模板可以在app_name/設(shè)置中配置.py,

TEMPLATES = [
	{
		# 要使用的模板后端
		'BACKEND': 'django.template.backends.django.DjangoTemplates',
		# 模板目錄
		'DIRS': [],
		'APP_DIRS': True,

		# 要配置的選項(xiàng)
		'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',
			],
		},
	},
]

使用 Django 模板

如何使用示例項(xiàng)目在 Django 中使用模板的插圖。模板不僅顯示靜態(tài)數(shù)據(jù),還顯示通過(guò)上下文字典連接到應(yīng)用程序的不同數(shù)據(jù)庫(kù)的數(shù)據(jù)??紤]一個(gè)名為極客forgeeks的項(xiàng)目,它有一個(gè)名為極客的應(yīng)用程序。

要呈現(xiàn)模板,需要一個(gè)視圖和一個(gè)映射到該視圖的URL。讓我們首先在極客/視圖中創(chuàng)建一個(gè)視圖.py,

# 從 django 導(dǎo)入 Http 響應(yīng)
from django.shortcuts import render

# 創(chuàng)建函數(shù)
def geeks_view(request):
	# 創(chuàng)建字典以將數(shù)據(jù)傳遞到模板
	context ={
		"data":"Gfg is the best",
		"list":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
	}
	# 使用模板和上下文返回響應(yīng)
	return render(request, "geeks.html", context)

現(xiàn)在我們需要映射一個(gè)URL來(lái)呈現(xiàn)這個(gè)視圖,

from django.urls import path

from .views import geeks_view

urlpatterns = [
	path('', geeks_view),
]

最后在 templates/geeks.html 中創(chuàng)建一個(gè)模板,

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>Homepage</title>
</head>
<body>
	<h1>Welcome to haiyong.site</h1>
	


<p> Data is {{ data }}</p>



	<h4>List is </h4>
	<ul>
	{% for i in list %}
	<li>{{ i }}</li>
	{% endfor %}
</body>
</html>

Django 模板語(yǔ)言

這是Django模板提供的最重要的設(shè)施之一。Django模板是使用Django模板語(yǔ)言標(biāo)記的文本文檔或Python字符串。模板引擎可以識(shí)別和解釋某些構(gòu)造。主要的是變量和標(biāo)簽。正如我們?cè)谏厦娴氖纠杏糜谘h(huán)一樣,我們將其用作標(biāo)記。同樣,我們可以使用各種其他條件,例如如果,否則,如果-否則,空等。Django模板語(yǔ)言的主要特征是變量,標(biāo)簽,過(guò)濾器和評(píng)論。

變量

變量從上下文中輸出一個(gè)值,該值是一個(gè)類似于字典的對(duì)象,它將鍵映射到值。我們從視圖發(fā)送的上下文對(duì)象可以使用Django模板的變量在模板中訪問(wèn)。

語(yǔ)法

{{ variable_name }}

示例

變量被 {{ 和 }} 括起來(lái),如下所示:

My first name is {{ first_name }}. My last name is {{ last_name }}. 

在上下文 {'first_name: “hai”、“last_name”: “yong”} 的情況下,此模板將呈現(xiàn)為:

My first name is hai. My last name is yong.

標(biāo)簽

標(biāo)記在呈現(xiàn)過(guò)程中提供任意邏輯。例如,標(biāo)記可以輸出內(nèi)容,用作控制結(jié)構(gòu),例如“if”語(yǔ)句或“for”循環(huán),從數(shù)據(jù)庫(kù)中獲取內(nèi)容,甚至允許訪問(wèn)其他模板標(biāo)記。

語(yǔ)法

{% tag_name %}

標(biāo)記由 {% 和 %} 括起來(lái),如下所示:

{% csrf_token %}

大多數(shù)標(biāo)簽接受參數(shù),例如:

{% cycle 'odd' 'even' %}
 常用標(biāo)簽 
Commentcycleextends
iffor loopfor … empty loop
BooleanOperatorsfirstofinclude
loremnowurl

過(guò)濾器

Django模板引擎提供用于轉(zhuǎn)換變量和標(biāo)簽參數(shù)值的過(guò)濾器。我們已經(jīng)討論了主要的Django模板標(biāo)簽。標(biāo)簽不能修改變量的值,而過(guò)濾器可用于增加變量的值或根據(jù)自己的需要修改變量的值。

語(yǔ)法

{{ variable_name | filter_name }}

過(guò)濾器可以“鏈接”。一個(gè)篩選器的輸出將應(yīng)用于下一個(gè)篩選器。{{ text|scape|換行 }} 是一種常用的習(xí)語(yǔ),用于轉(zhuǎn)義文本內(nèi)容,然后將換行符轉(zhuǎn)換為

標(biāo)記。

{{ value | length }}

如果值為  ['a'、'b'、'c'、'd'] ,則輸出將為 4。

 主要模板過(guò)濾器 
addaddslashescapfirst
centercutdate
defaultdictsortdivisibleby
escapefilesizefodivisible byrmatfirst
joinlastlength
line numberslowermake_list
randomsliceslugify
timetimesincetitle
unordered_listupperwordcount

評(píng)論

模板忽略 {% 注釋 %} 和 {% 結(jié)束注釋 %} 之間的所有內(nèi)容??梢栽诘谝粋€(gè) 標(biāo)記中插入一個(gè)可選注釋。例如,這在注釋掉代碼以記錄代碼被禁用的原因時(shí)很有用。

語(yǔ)法

{% comment 'comment_name' %}
{% endcomment %}

例:

{% comment "Optional note" %}
    Commented out text with {{ create_date|date:"c" }}
{% endcomment %}

模板繼承

Django模板引擎中最強(qiáng)大,因此最復(fù)雜的部分是模板繼承。模板繼承允許您構(gòu)建一個(gè)基本的“骨架”模板,其中包含站點(diǎn)的所有公共元素,并定義子模板可以覆蓋的塊。擴(kuò)展標(biāo)簽用于在 Django 中繼承模板。需要一遍又一遍地重復(fù)相同的代碼。使用擴(kuò)展,我們可以繼承模板和變量。

語(yǔ)法

{% extends 'template_name.html' %} 

示例 :

假定以下目錄結(jié)構(gòu):

dir1/
    template.html
    base2.html
    my/
        base3.html
base1.html

在模板.html中,以下路徑將有效:

{% extends "./base2.html" %}
{% extends "../base1.html" %}
{% extends "./my/base3.html" %}   

以上就是Python Django教程之模板的使用的詳細(xì)內(nèi)容,更多關(guān)于Python Django模板的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中的@cache巧妙用法

    Python中的@cache巧妙用法

    緩存是一種空間換時(shí)間的策略,緩存的設(shè)置可以提高計(jì)算機(jī)系統(tǒng)的性能,這篇文章主要介紹了Python中的@cache巧妙用法,需要的朋友可以參考下
    2023-04-04
  • python模擬enum枚舉類型的方法小結(jié)

    python模擬enum枚舉類型的方法小結(jié)

    這篇文章主要介紹了python模擬enum枚舉類型的方法,實(shí)例總結(jié)了python模擬enum枚舉類型的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于Django ForeignKey 反向查詢中filter和_set的效率對(duì)比詳解

    關(guān)于Django ForeignKey 反向查詢中filter和_set的效率對(duì)比詳解

    今天小編就為大家分享一篇關(guān)于Django ForeignKey 反向查詢中filter和_set的效率對(duì)比詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python tkinter canvas使用實(shí)例

    python tkinter canvas使用實(shí)例

    這篇文章主要介紹了python tkinter canvas使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 舉例講解Python設(shè)計(jì)模式編程中的訪問(wèn)者與觀察者模式

    舉例講解Python設(shè)計(jì)模式編程中的訪問(wèn)者與觀察者模式

    這篇文章主要介紹了Python設(shè)計(jì)模式編程中的訪問(wèn)者與觀察者模式,設(shè)計(jì)模式的制定有利于團(tuán)隊(duì)協(xié)作編程代碼的協(xié)調(diào),需要的朋友可以參考下
    2016-01-01
  • Python裝飾器使用實(shí)例:驗(yàn)證參數(shù)合法性

    Python裝飾器使用實(shí)例:驗(yàn)證參數(shù)合法性

    這篇文章主要介紹了Python裝飾器使用實(shí)例:驗(yàn)證參數(shù)合法性,本文直接給出代碼實(shí)例,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-06-06
  • Python實(shí)現(xiàn)讀取Excel表數(shù)據(jù)并轉(zhuǎn)為JSON格式文件

    Python實(shí)現(xiàn)讀取Excel表數(shù)據(jù)并轉(zhuǎn)為JSON格式文件

    這篇文章主要為大家詳細(xì)介紹了Python如何使用pandas庫(kù)讀取Excel表并將其轉(zhuǎn)為JSON格式文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下
    2025-04-04
  • Python利用Seaborn繪制多標(biāo)簽的混淆矩陣

    Python利用Seaborn繪制多標(biāo)簽的混淆矩陣

    混淆矩陣也稱誤差矩陣,是表示精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,用n行n列的矩陣形式來(lái)表示。本文將利用Seaborn繪制多標(biāo)簽的混淆矩陣,感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • Python 中如何寫注釋

    Python 中如何寫注釋

    這篇文章主要介紹了如何在 Python 中注釋,幫助其他開發(fā)者理解你的代碼,以及代碼的目的。感興趣的朋友可以了解下
    2020-08-08
  • Python基礎(chǔ)語(yǔ)法之容器詳解

    Python基礎(chǔ)語(yǔ)法之容器詳解

    這篇文章主要介紹了Python基礎(chǔ)語(yǔ)法之容器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下,希望能夠給你帶來(lái)幫助
    2021-09-09

最新評(píng)論

金坛市| 炎陵县| 利川市| 攀枝花市| 景泰县| 滦南县| 资兴市| 分宜县| 务川| 西林县| 洪雅县| 珠海市| 大竹县| 团风县| 江都市| 高台县| 四会市| 翁牛特旗| 富裕县| 孟村| 兴义市| 固镇县| 山丹县| 随州市| 来凤县| 光泽县| 洛浦县| 铁岭县| 钟祥市| 长顺县| 嘉义县| 明水县| 长沙县| 怀远县| 红桥区| 广平县| 锡林郭勒盟| 宜兰县| 马公市| 彭泽县| 大兴区|