欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在Python的Django框架中創(chuàng)建和使用模版

 更新時間:2015年07月15日 11:51:11   投稿:goldensun  
這篇文章主要介紹了在Python的Django框架中創(chuàng)建和使用模版的方法,包括使用manage.py shell來幫助設(shè)置模版的方法,需要的朋友可以參考下

如何使用模板系統(tǒng)

讓我們深入研究模板系統(tǒng),你將會明白它是如何工作的。但我們暫不打算將它與先前創(chuàng)建的視圖結(jié)合在一起,因?yàn)槲覀儸F(xiàn)在的目的是了解它是如何獨(dú)立工作的。 。 (換言之, 通常你會將模板和視圖一起使用,但是我們只是想突出模板系統(tǒng)是一個Python庫,你可以在任何地方使用它,而不僅僅是在Django視圖中。)

在Python代碼中使用Django模板的最基本方式如下:

  •     可以用原始的模板代碼字符串創(chuàng)建一個 Template 對象, Django同樣支持用指定模板文件路徑的方式來創(chuàng)建 Template 對象;
  •     調(diào)用模板對象的render方法,并且傳入一套變量context。它將返回一個基于模板的展現(xiàn)字符串,模板中的變量和標(biāo)簽會被context值替換。

代碼如下:

>>> from django import template
>>> t = template.Template('My name is {{ name }}.')
>>> c = template.Context({'name': 'Adrian'})
>>> print t.render(c)
My name is Adrian.
>>> c = template.Context({'name': 'Fred'})
>>> print t.render(c)
My name is Fred.

以下部分逐步的詳細(xì)介紹
創(chuàng)建模板對象

創(chuàng)建一個 Template 對象最簡單的方法就是直接實(shí)例化它。 Template 類就在 django.template 模塊中,構(gòu)造函數(shù)接受一個參數(shù),原始模板代碼。 讓我們深入挖掘一下 Python的解釋器看看它是怎么工作的。

轉(zhuǎn)到project目錄(在第二章由 django-admin.py startproject 命令創(chuàng)建), 輸入命令 python manage.py shell 啟動交互界面。

一個特殊的Python提示符

如果你曾經(jīng)使用過Python,你一定好奇,為什么我們運(yùn)行python manage.py shell而不是python。這兩個命令都會啟動交互解釋器,但是manage.py shell命令有一個重要的不同: 在啟動解釋器之前,它告訴Django使用哪個設(shè)置文件。 Django框架的大部分子系統(tǒng),包括模板系統(tǒng),都依賴于配置文件;如果Django不知道使用哪個配置文件,這些系統(tǒng)將不能工作。

如果你想知道,這里將向你解釋它背后是如何工作的。 Django搜索DJANGO_SETTINGS_MODULE環(huán)境變量,它被設(shè)置在settings.py中。例如,假設(shè)mysite在你的Python搜索路徑中,那么DJANGO_SETTINGS_MODULE應(yīng)該被設(shè)置為:'mysite.settings'。

當(dāng)你運(yùn)行命令:python manage.py shell,它將自動幫你處理DJANGO_SETTINGS_MODULE。 在當(dāng)前的這些示例中,我們鼓勵你使用`` python manage.py shell``這個方法,這樣可以免去你大費(fèi)周章地去配置那些你不熟悉的環(huán)境變量。

隨著你越來越熟悉Django,你可能會偏向于廢棄使用`` manage.py shell`` ,而是在你的配置文件.bash_profile中手動添加 DJANGO_SETTINGS_MODULE這個環(huán)境變量。

讓我們來了解一些模板系統(tǒng)的基本知識:

>>> from django.template import Template
>>> t = Template('My name is {{ name }}.')
>>> print t

如果你跟我們一起做,你將會看到下面的內(nèi)容:

<django.template.Template object at 0xb7d5f24c>

0xb7d5f24c 每次都會不一樣,這沒什么關(guān)系;這只是Python運(yùn)行時 Template 對象的ID。

當(dāng)你創(chuàng)建一個 Template 對象,模板系統(tǒng)在內(nèi)部編譯這個模板到內(nèi)部格式,并做優(yōu)化,做好 渲染的準(zhǔn)備。 如果你的模板語法有錯誤,那么在調(diào)用 Template() 時就會拋出 TemplateSyntaxError 異常:

>>> from django.template import Template
>>> t = Template('{% notatag %}')
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
 ...
django.template.TemplateSyntaxError: Invalid block tag: 'notatag'

這里,塊標(biāo)簽(block tag)指向的是`` {% notatag %}``,塊標(biāo)簽與模板標(biāo)簽是同義的。

系統(tǒng)會在下面的情形拋出 TemplateSyntaxError 異常:

  •     無效的tags
  •     標(biāo)簽的參數(shù)無效
  •     無效的過濾器
  •     過濾器的參數(shù)無效
  •     無效的模板語法
  •     未封閉的塊標(biāo)簽 (針對需要封閉的塊標(biāo)簽)


相關(guān)文章

  • django在保存圖像的同時壓縮圖像示例代碼詳解

    django在保存圖像的同時壓縮圖像示例代碼詳解

    這篇文章主要介紹了django在保存圖像的同時壓縮圖像,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Python小實(shí)例混合使用turtle和tkinter讓小海龜互動起來

    Python小實(shí)例混合使用turtle和tkinter讓小海龜互動起來

    Tkinter模塊("Tk 接口")是Python的標(biāo)準(zhǔn)Tk GUI工具包的接口.Tk和Tkinter可以在大多數(shù)的Unix平臺下使用,同樣可以應(yīng)用在Windows和Macintosh系統(tǒng)里.Tk8.0的后續(xù)版本可以實(shí)現(xiàn)本地窗口風(fēng)格,并良好地運(yùn)行在絕大多數(shù)平臺中
    2021-10-10
  • 如何計算 tensorflow 和 pytorch 模型的浮點(diǎn)運(yùn)算數(shù)

    如何計算 tensorflow 和 pytorch 模型的浮點(diǎn)運(yùn)算數(shù)

    FLOPs 是 floating point operations 的縮寫,指浮點(diǎn)運(yùn)算數(shù),可以用來衡量模型/算法的計算復(fù)雜度。本文主要討論如何在 tensorflow 1.x, tensorflow 2.x 以及 pytorch 中利用相關(guān)工具計算對應(yīng)模型的 FLOPs,需要的朋友可以參考下
    2022-11-11
  • python基于遞歸解決背包問題詳解

    python基于遞歸解決背包問題詳解

    這篇文章主要介紹了python基于遞歸解決背包問題,遞歸是個好東西,任何具有遞歸性質(zhì)的問題通過函數(shù)遞歸調(diào)用會變得很簡單。一個很復(fù)雜的問題,幾行代碼就能搞定,需要的朋友可以參考下
    2019-07-07
  • Python?pyecharts實(shí)時畫圖自定義可視化經(jīng)緯度熱力圖

    Python?pyecharts實(shí)時畫圖自定義可視化經(jīng)緯度熱力圖

    這篇文章主要為大家介紹了Python?pyecharts實(shí)時畫圖自定義經(jīng)緯度熱力圖實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python3如何使用tabulate打印數(shù)據(jù)

    Python3如何使用tabulate打印數(shù)據(jù)

    這篇文章主要介紹了Python3如何使用tabulate打印數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Django-xadmin后臺導(dǎo)入json數(shù)據(jù)及后臺顯示信息圖標(biāo)和主題更改方式

    Django-xadmin后臺導(dǎo)入json數(shù)據(jù)及后臺顯示信息圖標(biāo)和主題更改方式

    這篇文章主要介紹了Django-xadmin后臺導(dǎo)入json數(shù)據(jù)及后臺顯示信息圖標(biāo)和主題更改方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • 使用Python腳本從文件讀取數(shù)據(jù)代碼實(shí)例

    使用Python腳本從文件讀取數(shù)據(jù)代碼實(shí)例

    這篇文章主要介紹了使用Python腳本從文件讀取數(shù)據(jù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python中csv文件創(chuàng)建、讀取及修改等操作實(shí)例

    python中csv文件創(chuàng)建、讀取及修改等操作實(shí)例

    很多程序在處理數(shù)據(jù)時都會碰到csv這種格式的文件,下面這篇文章主要給大家介紹了關(guān)于python中csv文件創(chuàng)建、讀取及修改等操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 通過案例解析python鴨子類型相關(guān)原理

    通過案例解析python鴨子類型相關(guān)原理

    這篇文章主要介紹了通過案例解析python鴨子類型相關(guān)原理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10

最新評論