在Django框架中偽造捕捉到的URLconf值的方法
比如說你有匹配某個模式的一堆視圖,以及一個并不匹配這個模式但視圖邏輯是一樣的URL。 這種情況下,你可以通過向同一個視圖傳遞額外URLconf參數(shù)來偽造URL值的捕捉。
例如,你可能有一個顯示某一個特定日子的某些數(shù)據(jù)的應(yīng)用,URL類似這樣的:
/mydata/jan/01/ /mydata/jan/02/ /mydata/jan/03/ # ... /mydata/dec/30/ /mydata/dec/31/
這太簡單了,你可以在一個URLconf中捕捉這些值,像這樣(使用命名組的方法):
urlpatterns = patterns('',
(r'^mydata/(?P<month>\w{3})/(?P<day>\d\d)/$', views.my_view),
)
然后視圖函數(shù)的原型看起來會是:
def my_view(request, month, day): # ....
這種解決方案很直接,沒有用到什么你沒見過的技術(shù)。 當(dāng)你想添加另外一個使用 my_view 視圖但不包含month和/或者day的URL時,問題就出現(xiàn)了。
比如你可能會想增加這樣一個URL, /mydata/birthday/ , 這個URL等價于 /mydata/jan/06/ 。這時你可以這樣利用額外URLconf參數(shù):
urlpatterns = patterns('',
(r'^mydata/birthday/$', views.my_view, {'month': 'jan', 'day': '06'}),
(r'^mydata/(?P<month>\w{3})/(?P<day>\d\d)/$', views.my_view),
)
在這里最帥的地方莫過于你根本不用改變你的視圖函數(shù)。 視圖函數(shù)只會關(guān)心它 獲得 了 參數(shù),它不會去管這些參數(shù)到底是捕捉回來的還是被額外提供的。month和day
相關(guān)文章
pytest allure添加環(huán)境信息實(shí)例講解
這篇文章主要介紹了pytest allure添加環(huán)境信息實(shí)例,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12
python實(shí)現(xiàn)的生成隨機(jī)迷宮算法核心代碼分享(含游戲完整代碼)
這篇文章主要介紹了python實(shí)現(xiàn)的隨機(jī)迷宮生成算法核心代碼分享,本文包含一個簡單迷宮游戲完整代碼,需要的朋友可以參考下2014-07-07
Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法
今天小編就為大家分享一篇Python 新建文件夾與復(fù)制文件夾內(nèi)所有內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

