国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Python的Django框架中創建和使用模版

2020-01-04 18:04:19
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在Python的Django框架中創建和使用模版的方法,包括使用manage.py shell來幫助設置模版的方法,需要的朋友可以參考下

如何使用模板系統

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

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

可以用原始的模板代碼字符串創建一個 Template 對象, Django同樣支持用指定模板文件路徑的方式來創建 Template 對象;

調用模板對象的render方法,并且傳入一套變量context。它將返回一個基于模板的展現字符串,模板中的變量和標簽會被context值替換。

代碼如下:

 

 
  1. >>> from django import template 
  2. >>> t = template.Template('My name is {{ name }}.'
  3. >>> c = template.Context({'name''Adrian'}) 
  4. >>> print t.render(c) 
  5. My name is Adrian. 
  6. >>> c = template.Context({'name''Fred'}) 
  7. >>> print t.render(c) 
  8. My name is Fred. 

以下部分逐步的詳細介紹

創建模板對象

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

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

一個特殊的Python提示符

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

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

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

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

讓我們來了解一些模板系統的基本知識:

 

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

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

 

 
  1. <django.template.Template object at 0xb7d5f24c> 

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

當你創建一個 Template 對象,模板系統在內部編譯這個模板到內部格式,并做優化,做好 渲染的準備。 如果你的模板語法有錯誤,那么在調用 Template() 時就會拋出 TemplateSyntaxError 異常:

 

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

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

系統會在下面的情形拋出 TemplateSyntaxError 異常:

無效的tags

標簽的參數無效

無效的過濾器

過濾器的參數無效

無效的模板語法

未封閉的塊標簽 (針對需要封閉的塊標簽)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴楚县| 汉寿县| 凤冈县| 射阳县| 揭阳市| 江达县| 江口县| 拉孜县| 琼海市| 仪陇县| 沁阳市| 建瓯市| 双辽市| 庆元县| 盘锦市| 新乡县| 建湖县| 客服| 雷波县| 兴化市| 五华县| 皮山县| 福鼎市| 綦江县| 清水县| 崇文区| 天峻县| 邯郸市| 张掖市| 三穗县| 自治县| 梅州市| 孝昌县| 娄底市| 东光县| 西华县| 华蓥市| 株洲县| 昆山市| 自贡市| 黄大仙区|