欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

詳解Python的Django框架中的模版相關(guān)知識

系統(tǒng) 1635 0

HTML被直接硬編碼在 Python 代碼之中。

            
def current_datetime(request):
  now = datetime.datetime.now()
  html = "It is now %s." % now
  return HttpResponse(html)


          

盡管這種技術(shù)便于解釋視圖是如何工作的,但直接將HTML硬編碼到你的視圖里卻并不是一個(gè)好主意。 讓我們來看一下為什么:

  • ??? 對頁面設(shè)計(jì)進(jìn)行的任何改變都必須對 Python 代碼進(jìn)行相應(yīng)的修改。 站點(diǎn)設(shè)計(jì)的修改往往比底層 Python 代碼的修改要頻繁得多,因此如果可以在不進(jìn)行 Python 代碼修改的情況下變更設(shè)計(jì),那將會方便得多。
  • ??? Python 代碼編寫和 HTML 設(shè)計(jì)是兩項(xiàng)不同的工作,大多數(shù)專業(yè)的網(wǎng)站開發(fā)環(huán)境都將他們分配給不同的人員(甚至不同部門)來完成。 設(shè)計(jì)者和HTML/CSS的編碼人員不應(yīng)該被要求去編輯Python的代碼來完成他們的工作。
  • ??? 程序員編寫 Python代碼和設(shè)計(jì)人員制作模板兩項(xiàng)工作同時(shí)進(jìn)行的效率是最高的,遠(yuǎn)勝于讓一個(gè)人等待另一個(gè)人完成對某個(gè)既包含 Python又包含 HTML 的文件的編輯工作。

基于這些原因,將頁面的設(shè)計(jì)和Python的代碼分離開會更干凈簡潔更容易維護(hù)。 我們可以使用 Django的 模板系統(tǒng) (Template System)來實(shí)現(xiàn)這種模式,這就是本章要具體討論的問題。


模板系統(tǒng)基本知識

模板是一個(gè)文本,用于分離文檔的表現(xiàn)形式和內(nèi)容。 模板定義了占位符以及各種用于規(guī)范文檔該如何顯示的各部分基本邏輯(模板標(biāo)簽)。 模板通常用于產(chǎn)生HTML,但是Django的模板也能產(chǎn)生任何基于文本格式的文檔。

讓我們從一個(gè)簡單的例子模板開始。 該模板描述了一個(gè)向某個(gè)與公司簽單人員致謝 HTML 頁面。 可將其視為一個(gè)格式信函:

            
              Ordering notice
            
            

Ordering notice

Dear {{ person_name }},

Thanks for placing an order from {{ company }}. It's scheduled to ship on {{ ship_date|date:"F j, Y" }}.

Here are the items you've ordered:

    {% for item in item_list %}
  • {{ item }}
  • {% endfor %}
{% if ordered_warranty %}

Your warranty information will be included in the packaging.

{% else %}

You didn't order a warranty, so you're on your own when the products inevitably stop working.

{% endif %}

Sincerely,
{{ company }}

該模板是一段添加了些許變量和模板標(biāo)簽的基礎(chǔ) HTML 。 讓我們逐步分析一下:

??? 用兩個(gè)大括號括起來的文字(例如 {{ person_name }} )稱為 變量(variable) 。這意味著在此處插入指定變量的值。 如何指定變量的值呢? 稍后就會說明。

??? 被大括號和百分號包圍的文本(例如 {% if ordered_warranty %} )是 模板標(biāo)簽(template tag) 。標(biāo)簽(tag)定義比較明確,即: 僅通知模板系統(tǒng)完成某些工作的標(biāo)簽。

??? 這個(gè)例子中的模板包含一個(gè)for標(biāo)簽( {% for item in item_list %} )和一個(gè)if 標(biāo)簽({% if ordered_warranty %} )

??? for標(biāo)簽類似Python的for語句,可讓你循環(huán)訪問序列里的每一個(gè)項(xiàng)目。 if 標(biāo)簽,正如你所料,是用來執(zhí)行邏輯判斷的。 在這里,tag標(biāo)簽檢查ordered_warranty值是否為True。如果是,模板系統(tǒng)將顯示{% if ordered_warranty %}和{% else %}之間的內(nèi)容;否則將顯示{% else %}和{% endif %}之間的內(nèi)容。{% else %}是可選的。

??? 最后,這個(gè)模板的第二段中有一個(gè)關(guān)于filter過濾器的例子,它是一種最便捷的轉(zhuǎn)換變量輸出格式的方式。 如這個(gè)例子中的{{ship_date|date:”F j, Y” }},我們將變量ship_date傳遞給date過濾器,同時(shí)指定參數(shù)”F j,Y”。date過濾器根據(jù)參數(shù)進(jìn)行格式輸出。 過濾器是用管道符(|)來調(diào)用的,具體可以參見Unix管道符。

Django 模板含有很多內(nèi)置的tags和filters,我們將陸續(xù)進(jìn)行學(xué)習(xí). 附錄F列出了很多的tags和filters的列表,熟悉這些列表對你來說是個(gè)好建議. 你依然可以利用它創(chuàng)建自己的tag和filters。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久国产精品久久 | 一级毛片国产真人永久在线 | 天天爱天天爽 | 一区二区在线视频 | 国产午夜精品理论片免费观看 | 日韩成人在线观看 | 日本高清无遮挡 | 亚洲精品亚洲人成人网 | 国产精品视频观看 | 国产福利视频一区二区 | 国产丫丫视频私人影院 | 久久草电影 | 成人伊人| 亚洲精品三级 | 成人综合视频网 | 国偷自产av一区二区三区 | 奇米4色 | 91精品视频免费在线观看 | 日韩午夜伦y4480私人影院 | 成人午夜免费福利 | 色综合天天色综合 | 欧美男人天堂 | 欧美亚洲不卡 | 国产一区二区三区免费播放 | 亚洲乱人伦在线 | 91男女视频| 老头巨大校花体内驰骋小说文 | 中文在线一区二区 | 欧美变态口味重另类日韩毛片 | 亚洲欧美日韩中文字幕久久 | 99这里只有精品6 | 国产电影一区二区三区 | 精品国产免费久久久久久 | 亚洲成人日韩 | av88av·com | 日本黄色网址视频 | 日本一区二区三区视频在线观看 | 欧美日韩国产精品一区二区 | 成人夜晚看av | 免费高清伧理片午夜伧理片 | 日韩在线免费看网站 |