Django框架中處理URLconf中特定的URL的方法
有時(shí)你有一個(gè)模式來(lái)處理在你的URLconf中的一系列URL,但是有時(shí)候需要特別處理其中的某個(gè)URL。 在這種情況下,要使用將URLconf中把特殊情況放在首位的線性處理方式 。
比方說(shuō),你可以考慮通過(guò)下面這個(gè)URLpattern所描述的方式來(lái)向Django的管理站點(diǎn)添加一個(gè)目標(biāo)頁(yè)面
urlpatterns = patterns('', # ... ('^([^/]+)/([^/]+)/add/$', views.add_stage), # ... )
這將匹配像 /myblog/entries/add/ 和 /auth/groups/add/ 這樣的URL 。然而,對(duì)于用戶對(duì)象的添加頁(yè)面( /auth/user/add/ )是個(gè)特殊情況,因?yàn)樗粫?huì)顯示所有的表單域,它顯示兩個(gè)密碼域等等。 我們 可以 在視圖中特別指出以解決這種情況:
def add_stage(request, app_label, model_name): if app_label == 'auth' and model_name == 'user': # do special-case code else: # do normal code
不過(guò),就如我們多次在這章提到的,這樣做并不優(yōu)雅: 因?yàn)樗裊RL邏輯放在了視圖中。 更優(yōu)雅的解決方法是,我們要利用URLconf從頂向下的解析順序這個(gè)特點(diǎn):
urlpatterns = patterns('', # ... ('^auth/user/add/$', views.user_add_stage), ('^([^/]+)/([^/]+)/add/$', views.add_stage), # ... )
在這種情況下,象 /auth/user/add/ 的請(qǐng)求將會(huì)被 user_add_stage 視圖處理。 盡管URL也匹配第二種模式,它會(huì)先匹配上面的模式。 (這是短路邏輯。)
相關(guān)文章
python使用ctypes模塊調(diào)用windowsapi獲取系統(tǒng)版本示例
這篇文章主要介紹了python使用ctypes模塊調(diào)用windowsapi獲取系統(tǒng)版本示例,需要的朋友可以參考下2014-04-04Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式
這篇文章主要介紹了Python解方程組 scipy.optimize.fsolve()函數(shù)如何求解帶有循環(huán)求和的方程式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程
這篇文章主要介紹了python中threading和queue庫(kù)實(shí)現(xiàn)多線程編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python編程中*args與**kwargs區(qū)別作用詳解
這篇文章主要介紹了Python編程中*args與**kwargs區(qū)別作用詳解2021-10-10一個(gè)基于flask的web應(yīng)用誕生 flask和mysql相連(4)
一個(gè)基于flask的web應(yīng)用誕生第四篇,這篇文章主要介紹了如何讓flask和mysql進(jìn)行互聯(lián),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04python中的load、loads實(shí)現(xiàn)反序列化示列
這篇文章主要介紹python中的load、loads實(shí)現(xiàn)反序列化,在python自動(dòng)化中,我們傳遞一些參數(shù)是需要從文件中讀取過(guò)來(lái)的,讀取過(guò)來(lái)的字典并非python對(duì)象數(shù)據(jù)類型而是string類型,下面來(lái)看詳情內(nèi)容吧2021-10-10Python Pandas list列表數(shù)據(jù)列拆分成多行的方法實(shí)現(xiàn)
這篇文章主要介紹了Python Pandas list(列表)數(shù)據(jù)列拆分成多行的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12