亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

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

系統 1655 0

如何使用模板系統

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

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

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


          

以下部分逐步的詳細介紹
創建模板對象

創建一個 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這個環境變量。

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

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


          

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

            
            
          

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

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

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


            
          

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

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

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



更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 婷综合 | 亚洲综合精品一二三区在线 | 欧美成人免费一区在线播放 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人系列 | 日韩在线观看中文字幕 | 日韩美女中文字幕 | 激情综合在线观看 | 亚洲国产日本 | 天天做天天爱天天爽天天综合 | 日本高清一级做a爱过程免费视频 | 色偷偷在线刺激免费视频 | 国产主播福利在线 | 国产精品久久天天影视 | 亚洲精品中文字幕乱码三区一二 | 青青青爽视频在线观看入口 | 国产一区在线mmai | 国产精品一区二区资源 | 夜夜爽日日澡人人添 | 欧美午夜性春 | 久久国内精品自在自线400部o | 亚洲国产综合精品中文字幕 | 狠狠色丁香婷婷久久综合不卡 | 大ji吧快给我别停受不了视频 | 欧美国产精品 | 久热这里只精品99re8久 | 国产高清在线精品一区二区三区 | 天堂网一区二区 | 一级片在线观看免费 | a级毛片高清免费视频 | 欧美在线免费观看视频 | 狠狠狠地啪香蕉 | 日本在线亚州精品视频在线 | 狠狠噜噜 | 欧美精品99久久久久久人 | 欧美成人精品第一区二区三区 | 亚洲性免费 | 久久久久久久久久久9精品视频 | 国产网红福利 | 国产亚洲精品美女一区二区 | 日本一本久 | 国产高h |