国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django框架中處理URLconf中特定的URL的方法

2019-11-25 17:09:50
字體:
來源:轉載
供稿:網友

有時你有一個模式來處理在你的URLconf中的一系列URL,但是有時候需要特別處理其中的某個URL。 在這種情況下,要使用將URLconf中把特殊情況放在首位的線性處理方式 。

比方說,你可以考慮通過下面這個URLpattern所描述的方式來向Django的管理站點添加一個目標頁面

urlpatterns = patterns('',  # ...  ('^([^/]+)/([^/]+)/add/$', views.add_stage),  # ...)

這將匹配像 /myblog/entries/add/ 和 /auth/groups/add/ 這樣的URL 。然而,對于用戶對象的添加頁面( /auth/user/add/ )是個特殊情況,因為它不會顯示所有的表單域,它顯示兩個密碼域等等。 我們 可以 在視圖中特別指出以解決這種情況:

def add_stage(request, app_label, model_name):  if app_label == 'auth' and model_name == 'user':    # do special-case code  else:    # do normal code

不過,就如我們多次在這章提到的,這樣做并不優雅: 因為它把URL邏輯放在了視圖中。 更優雅的解決方法是,我們要利用URLconf從頂向下的解析順序這個特點:

urlpatterns = patterns('',  # ...  ('^auth/user/add/$', views.user_add_stage),  ('^([^/]+)/([^/]+)/add/$', views.add_stage),  # ...)

在這種情況下,象 /auth/user/add/ 的請求將會被 user_add_stage 視圖處理。 盡管URL也匹配第二種模式,它會先匹配上面的模式。 (這是短路邏輯。)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宾阳县| 南靖县| 汉寿县| 托克托县| 临沂市| 洛浦县| 华池县| 信阳市| 吴江市| 政和县| 桓台县| 紫金县| 枝江市| 威信县| 克拉玛依市| 忻州市| 虹口区| 衢州市| 大余县| 肃北| 泸定县| 公安县| 浪卡子县| 宣恩县| 苏尼特右旗| 双辽市| 旌德县| 邛崃市| 运城市| 磐石市| 抚顺市| 望奎县| 白玉县| 尼勒克县| 宁蒗| 贵德县| 扬州市| 增城市| 寻甸| 宁乡县| 神池县|