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

在Python的Django框架中使用通用視圖的方法

系統 1749 0

使用通用視圖的方法是在URLconf文件中創建配置字典,然后把這些字典作為URLconf元組的第三個成員。

例如,下面是一個呈現靜態“關于”頁面的URLconf:

            
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
  (r'^about/$', direct_to_template, {
    'template': 'about.html'
  })
)


          

一眼看上去似乎有點不可思議,不需要編寫代碼的視圖! 它和第八章中的例子完全一樣:direct_to_template視圖僅僅是直接從傳遞過來的額外參數獲取信息并用于渲染視圖。

因為通用視圖都是標準的視圖函數,我們可以在我們自己的視圖中重用它。 例如,我們擴展 about例子,把映射的URL從 /about//修改到一個靜態渲染 about/.html 。 我們首先修改URL配置以指向新的視圖函數:

            
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
**from mysite.books.views import about_pages**

urlpatterns = patterns('',
  (r'^about/$', direct_to_template, {
    'template': 'about.html'
  }),
  **(r'^about/(\w+)/$', about_pages),**
)


          

接下來,我們編寫 about_pages 視圖的代碼:

            
from django.http import Http404
from django.template import TemplateDoesNotExist
from django.views.generic.simple import direct_to_template

def about_pages(request, page):
  try:
    return direct_to_template(request, template="about/%s.html" % page)
  except TemplateDoesNotExist:
    raise Http404()


          

在這里我們象使用其他函數一樣使用 direct_to_template 。 因為它返回一個HttpResponse對象,我們只需要簡單的返回它就好了。 這里唯一有點棘手的事情是要處理找不到模板的情況。 我們不希望一個不存在的模板導致一個服務端錯誤,所以我們捕獲TemplateDoesNotExist異常并且返回404錯誤來作為替代。

這里有沒有安全性問題?

眼尖的讀者可能已經注意到一個可能的安全漏洞: 我們直接使用從客戶端瀏覽器得到的數據構造模板名稱(template="about/%s.html" % page )。乍看起來,這像是一個經典的 目錄跨越(directory traversal) 攻擊(詳情請看第20章)。 事實真是這樣嗎?

完全不是。 是的,一個惡意的 page 值可以導致目錄跨越,但是盡管 page 是 從請求的URL中獲取的,但并不是所有的值都會被接受。 這就是URL配置的關鍵所在: 我們使用正則表達式 \w+ 來從URL里匹配 page ,而 \w 只接受字符和數字。 因此,任何惡意的字符 (例如在這里是點 . 和正斜線 / )將在URL解析時被拒絕,根本不會傳遞給視圖函數。


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 成人在线第一页 | 四虎影视在线永久免费观看 | 国产精品久久久久影院 | 久操这里只有精品 | 99久久综合国产精品免费 | 乱子伦有声小说mp3 仑乱高清在线一级播放 | 青春禁区视频在线观看动漫版 | 91成人免费福利网站在线 | 欧美黑人巨大3dvideo | 国产一区二区三区播放 | 99资源站 | 亚洲综合一区二区三区 | 在线观看欧美一区 | 日日操夜夜操狠狠操 | 天天干天天插天天操 | 久久爱影视i | 久久精品国产欧美日韩99热 | 国产福利福利视频 | 国产精品天天看 | 日本综合在线观看 | 国产情侣普通话刺激对白 | 国产成人在线视频免费观看 | 婷婷在线观看视频 | 日日搞夜夜操 | 国产ar高清视频+视频 | 天天干天天要 | 中文字幕美日韩在线高清 | 伊人婷婷色香五月综合缴缴情 | 雅虎日本免费一区二区三区 | 一级高清在线观看影片 | 亚洲国产激情一区二区三区 | 99热久久国产精品这里小说 | 成年女人色毛片免费 | 91久久精品视频 | 国产最新在线视频 | 奇米视频第四色 | 精品一区二区三区色花堂 | 99久热国产精品视频尤物不卡 | 久久 在线播放 | 88国产精品欧美一区二区三区 | 日韩在线 中文字幕 |