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

Django框架下在視圖中使用模版的方法

 更新時間:2015年07月16日 11:56:41   投稿:goldensun  
這篇文章主要介紹了Django框架下在視圖中使用模版的方法,Django是Python豐富多彩的眾框架中最有人氣的一個,需要的朋友可以參考下

 打開current_datetime 視圖。 以下是其內(nèi)容:

from django.http import HttpResponse
import datetime

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

讓我們用 Django 模板系統(tǒng)來修改該視圖。 第一步,你可能已經(jīng)想到了要做下面這樣的修改:

from django.template import Template, Context
from django.http import HttpResponse
import datetime

def current_datetime(request):
  now = datetime.datetime.now()
  t = Template("<html><body>It is now {{ current_date }}.</body></html>")
  html = t.render(Context({'current_date': now}))
  return HttpResponse(html)

沒錯,它確實使用了模板系統(tǒng),但是并沒有解決我們在本章開頭所指出的問題。 也就是說,模板仍然嵌入在Python代碼里,并未真正的實現(xiàn)數(shù)據(jù)與表現(xiàn)的分離。 讓我們將模板置于一個 單獨的文件 中,并且讓視圖加載該文件來解決此問題。

你可能首先考慮把模板保存在文件系統(tǒng)的某個位置并用 Python 內(nèi)建的文件操作函數(shù)來讀取文件內(nèi)容。 假設(shè)文件保存在 /home/djangouser/templates/mytemplate.html 中的話,代碼就會像下面這樣:

from django.template import Template, Context
from django.http import HttpResponse
import datetime

def current_datetime(request):
  now = datetime.datetime.now()
  # Simple way of using templates from the filesystem.
  # This is BAD because it doesn't account for missing files!
  fp = open('/home/djangouser/templates/mytemplate.html')
  t = Template(fp.read())
  fp.close()
  html = t.render(Context({'current_date': now}))
  return HttpResponse(html)

然而,基于以下幾個原因,該方法還算不上簡潔:

  •     它沒有對文件丟失的情況做出處理。 如果文件 mytemplate.html 不存在或者不可讀, open() 函數(shù)調(diào)用將會引發(fā) IOError 異常。
  •     這里對模板文件的位置進(jìn)行了硬編碼。 如果你在每個視圖函數(shù)都用該技術(shù),就要不斷復(fù)制這些模板的位置。 更不用說還要帶來大量的輸入工作!
  •     它包含了大量令人生厭的重復(fù)代碼。 與其在每次加載模板時都調(diào)用 open() 、 fp.read() 和 fp.close() ,還不如做出更佳選擇。

相關(guān)文章

  • Python中uuid模塊生成唯一標(biāo)識符的方法詳解

    Python中uuid模塊生成唯一標(biāo)識符的方法詳解

    這篇文章主要給大家介紹了關(guān)于Python中uuid模塊生成唯一標(biāo)識符的相關(guān)資料,uuid庫是Python標(biāo)準(zhǔn)庫中的一個功能強大的庫,可以用于生成全局唯一標(biāo)識符(UUID),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • Python繪制詞云圖之可視化神器pyecharts的方法

    Python繪制詞云圖之可視化神器pyecharts的方法

    這篇文章主要介紹了Python繪制詞云圖之可視化神器pyecharts,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • PHP魔術(shù)方法__ISSET、__UNSET使用實例

    PHP魔術(shù)方法__ISSET、__UNSET使用實例

    這篇文章主要介紹了PHP魔術(shù)方法__ISSET、__UNSET使用實例,本文直接給出代碼示例,需要的朋友可以參考下
    2014-11-11
  • Python異步在非阻塞子進(jìn)程中運行命令詳解

    Python異步在非阻塞子進(jìn)程中運行命令詳解

    這篇文章主要為大家介紹了Python異步在非阻塞子進(jìn)程中運行命令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • SageMath與Python的使用示例教程

    SageMath與Python的使用示例教程

    SageMath是一個開源的數(shù)學(xué)軟件,它可以與Python進(jìn)行交互,本文通過實例代碼介紹了SageMath與Python的使用,需要的朋友可以參考下
    2024-03-03
  • 深入了解Python的多線程基礎(chǔ)

    深入了解Python的多線程基礎(chǔ)

    這篇文章主要為大家介紹了Python多線程基礎(chǔ),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • 基于python3實現(xiàn)socket文件傳輸和校驗

    基于python3實現(xiàn)socket文件傳輸和校驗

    這篇文章主要為大家詳細(xì)介紹了基于python3實現(xiàn)socket文件傳輸和校驗,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 基于python中theano庫的線性回歸

    基于python中theano庫的線性回歸

    這篇文章主要為大家詳細(xì)介紹了基于python中theano庫的線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python?tkinter中l(wèi)abel控件動態(tài)改變值問題

    Python?tkinter中l(wèi)abel控件動態(tài)改變值問題

    這篇文章主要介紹了Python?tkinter中l(wèi)abel控件動態(tài)改變值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python基于右遞歸解決八皇后問題的方法

    python基于右遞歸解決八皇后問題的方法

    這篇文章主要介紹了python基于右遞歸解決八皇后問題的方法,實例分析了右遞歸算法的相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05

最新評論

舞钢市| 南漳县| 崇信县| 临漳县| 罗田县| 云浮市| 梅河口市| 虞城县| 广饶县| 临邑县| 广饶县| 美姑县| 阜阳市| 株洲县| 紫金县| 庆阳市| 闸北区| 彝良县| 新巴尔虎左旗| 平凉市| 靖州| 扬州市| 乐陵市| 云南省| 武功县| 屯留县| 乌拉特后旗| 内江市| 花莲市| 拜城县| 吴旗县| 西充县| 海盐县| 公主岭市| 波密县| 遂溪县| 上高县| 竹溪县| 余姚市| 西贡区| 武穴市|