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

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

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

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

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

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

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

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

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

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

一個特殊的Python提示符

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

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

當你運行命令:python manage.py shell,它將自動幫你處理DJANGO_SETTINGS_MODULE。 在當前的這些示例中,我們鼓勵你使用`` python manage.py shell``這個方法,這樣可以免去你大費周章地去配置那些你不熟悉的環(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 每次都會不一樣,這沒什么關系;這只是Python運行時 Template 對象的ID。

當你創(chuàng)建一個 Template 對象,模板系統(tǒng)在內(nèi)部編譯這個模板到內(nèi)部格式,并做優(yōu)化,做好 渲染的準備。 如果你的模板語法有錯誤,那么在調(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'

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

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

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


相關文章

  • Python模塊Typing.overload的使用場景分析

    Python模塊Typing.overload的使用場景分析

    在 Python 中,typing.overload 是一個用于定義函數(shù)重載的裝飾器,函數(shù)重載是指在一個類中可以定義多個相同名字但參數(shù)不同的函數(shù),使得在調(diào)用函數(shù)時可以根據(jù)參數(shù)的不同選擇不同的函數(shù)執(zhí)行,這篇文章主要介紹了Python模塊Typing.overload的使用,需要的朋友可以參考下
    2024-02-02
  • Python實現(xiàn)的個人所得稅計算器示例

    Python實現(xiàn)的個人所得稅計算器示例

    這篇文章主要介紹了Python實現(xiàn)的個人所得稅計算器,涉及Python條件判斷與數(shù)值運算相關操作技巧,需要的朋友可以參考下
    2018-06-06
  • 卸載所有通過pip安裝的Python包的方法總結(jié)(Windows系統(tǒng))

    卸載所有通過pip安裝的Python包的方法總結(jié)(Windows系統(tǒng))

    這篇文章主要介紹了卸載所有通過pip安裝的Python包的方法總結(jié)(Windows系統(tǒng)),文中通過代碼示例和圖文講解的非常詳細,并具有一定的參考價值,需要的朋友可以參考下
    2024-08-08
  • Python實現(xiàn)從線程獲取返回值

    Python實現(xiàn)從線程獲取返回值

    本文介紹了Python中線程的概念、創(chuàng)建線程的方法和在線程中獲取函數(shù)返回值的技巧,線程作為進程中的執(zhí)行單元,可以實現(xiàn)程序的并發(fā)運行,文章通過示例代碼展示了如何在Python中使用Thread類創(chuàng)建線程,并講解了在線程中傳遞參數(shù)和獲取返回值的方法
    2024-09-09
  • 解決django 向mysql中寫入中文字符出錯的問題

    解決django 向mysql中寫入中文字符出錯的問題

    這篇文章主要介紹了解決django 向mysql中寫入中文字符出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 使用Python實現(xiàn)VPN搭建的流程步驟

    使用Python實現(xiàn)VPN搭建的流程步驟

    VPN(虛擬私人網(wǎng)絡)是一種有效的解決方案,可以幫助我們在網(wǎng)絡上匿名瀏覽,保護數(shù)據(jù)傳輸?shù)陌踩?雖然市面上有許多商業(yè)VPN服務,但你也可以通過Python自己搭建一個簡單的VPN,本文將介紹如何用Python建立自己的VPN,需要的朋友可以參考下
    2024-06-06
  • Python 時間操作datetime詳情(下)

    Python 時間操作datetime詳情(下)

    我們在上一文datetime模塊對datetime模塊中包含了六個類對象如date、time、datetime等對時間和日期進行操作。這一篇文章我們繼續(xù)上一篇文章的內(nèi)容學習datetime模塊中六大類的相關方法和屬性
    2021-11-11
  • Python中property屬性的用處詳解

    Python中property屬性的用處詳解

    這篇文章主要給大家介紹了關于Python中property屬性的相關資料,需簡單地說就是一個類里面的方法一旦被@property裝飾,就可以像調(diào)用屬性一樣地去調(diào)用這個方法,它能夠簡化調(diào)用者獲取數(shù)據(jù)的流程,而且不用擔心將屬性暴露出來,有人對其進行賦值操作,下面要的朋友可以參考下
    2022-04-04
  • Python編程使用matplotlib挑鉆石seaborn畫圖入門教程

    Python編程使用matplotlib挑鉆石seaborn畫圖入門教程

    這篇文章主要為大家介紹了Python編程中使用matplotlib繪圖包來挑出完美的鉆石,本篇是seaborn包畫圖使用入門篇,有需要的朋友可以借鑒參考下
    2021-10-10
  • Python 自動備份腳本的示例代碼

    Python 自動備份腳本的示例代碼

    這篇文章主要介紹了Python 自動備份腳本,本文結(jié)合代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

大新县| 金门县| 山阳县| 延津县| 老河口市| 民丰县| 宁都县| 昌江| 迭部县| 溆浦县| 正安县| 张家界市| 建宁县| 高平市| 孟津县| 刚察县| 塔城市| 乐陵市| 林甸县| 张家川| 巨野县| 都江堰市| 天全县| 定结县| 兴海县| 吉林省| 鸡泽县| 茂名市| 永新县| 永嘉县| 汕尾市| 曲靖市| 丰县| 尼勒克县| 喀喇沁旗| 南城县| 霍州市| 铜梁县| 马关县| 新建县| 蚌埠市|