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

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

 更新時(shí)間:2015年07月21日 11:56:02   投稿:goldensun  
這篇文章主要介紹了在Python的Django框架中使用通用視圖的方法,同時(shí)提到了相關(guān)的安全問題,需要的朋友可以參考下

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

例如,下面是一個(gè)呈現(xiàn)靜態(tài)“關(guān)于”頁面的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'
  })
)

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

因?yàn)橥ㄓ靡晥D都是標(biāo)準(zhǔn)的視圖函數(shù),我們可以在我們自己的視圖中重用它。 例如,我們擴(kuò)展 about例子,把映射的URL從 /about//修改到一個(gè)靜態(tài)渲染 about/.html 。 我們首先修改URL配置以指向新的視圖函數(shù):

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()

在這里我們象使用其他函數(shù)一樣使用 direct_to_template 。 因?yàn)樗祷匾粋€(gè)HttpResponse對象,我們只需要簡單的返回它就好了。 這里唯一有點(diǎn)棘手的事情是要處理找不到模板的情況。 我們不希望一個(gè)不存在的模板導(dǎo)致一個(gè)服務(wù)端錯(cuò)誤,所以我們捕獲TemplateDoesNotExist異常并且返回404錯(cuò)誤來作為替代。

這里有沒有安全性問題?

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

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

相關(guān)文章

  • PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能

    PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能

    這篇文章主要給大家介紹了關(guān)于PyCharm更換pip源、模塊安裝以及PyCharm依賴包導(dǎo)入導(dǎo)出功能的相關(guān)資料,我們在使用pycharm的時(shí)候,pycharm中的虛擬環(huán)境依賴包需要導(dǎo)出成一個(gè)文件,需要的朋友可以參考下
    2023-11-11
  • Flask框架之?dāng)?shù)據(jù)交互的實(shí)現(xiàn)

    Flask框架之?dāng)?shù)據(jù)交互的實(shí)現(xiàn)

    本文主要介紹了Flask框架之?dāng)?shù)據(jù)交互的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 對json字符串與python字符串的不同之處詳解

    對json字符串與python字符串的不同之處詳解

    今天小編就為大家分享一篇對json字符串與python字符串的不同之處詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python實(shí)現(xiàn)多人聊天室

    python實(shí)現(xiàn)多人聊天室

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多人聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python3 sys.argv[ ]用法詳解

    Python3 sys.argv[ ]用法詳解

    這篇文章主要介紹了Python3 sys.argv[ ]用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python數(shù)據(jù)可視化常用4大繪圖庫原理詳解

    Python數(shù)據(jù)可視化常用4大繪圖庫原理詳解

    這篇文章主要介紹了Python數(shù)據(jù)可視化常用4大繪圖庫原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • python把ipynb文件轉(zhuǎn)換成pdf文件過程詳解

    python把ipynb文件轉(zhuǎn)換成pdf文件過程詳解

    這篇文章主要介紹了用python把ipynb文件轉(zhuǎn)換成pdf文件過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作步驟

    Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作步驟

    這篇文章主要介紹Python如何實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作,文中有詳細(xì)的流程步驟和代碼示例,對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • Python爬蟲獲取op.gg英雄聯(lián)盟英雄對位勝率的源碼

    Python爬蟲獲取op.gg英雄聯(lián)盟英雄對位勝率的源碼

    這篇文章主要介紹了Python爬蟲獲取op.gg英雄聯(lián)盟英雄對位勝率,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Tensorflow實(shí)現(xiàn)AlexNet卷積神經(jīng)網(wǎng)絡(luò)及運(yùn)算時(shí)間評(píng)測

    Tensorflow實(shí)現(xiàn)AlexNet卷積神經(jīng)網(wǎng)絡(luò)及運(yùn)算時(shí)間評(píng)測

    這篇文章主要為大家詳細(xì)介紹了Tensorflow實(shí)現(xiàn)AlexNet卷積神經(jīng)網(wǎng)絡(luò)及運(yùn)算時(shí)間評(píng)測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評(píng)論

固安县| 江津市| 托克托县| 浙江省| 九寨沟县| 贺兰县| 名山县| 顺平县| 崇仁县| 洪江市| 吉木萨尔县| 东乡族自治县| 申扎县| 嘉善县| 蕉岭县| 文化| 吴川市| 茶陵县| 名山县| 扶绥县| 浦北县| 富平县| 简阳市| 蕉岭县| 义乌市| 黑龙江省| 乐亭县| 和硕县| 长岭县| 河东区| 鄯善县| 安陆市| 化德县| 桂阳县| 五台县| 马尔康县| 崇阳县| 卓资县| 鲁甸县| 南充市| 阿荣旗|