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

首頁 > 編程 > Python > 正文

Python的Django框架中URLconf相關的一些技巧整理

2020-01-04 18:02:14
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python的Django框架中URLconf相關的一些技巧整理,包括視圖配置和debug的示例等,需要的朋友可以參考下
 

提供視圖配置選項

如果你發布一個Django的應用,你的用戶可能會希望配置上能有些自由度。 這種情況下,為你認為用戶可能希望改變的配置選項添加一些鉤子到你的視圖中會是一個很好的主意。 你可以用額外URLconf參數實現。

一個應用中比較常見的可供配置代碼是模板名字:
 

  1. def my_view(request, template_name): 
  2.   var = do_something() 
  3.   return render_to_response(template_name, {'var'var}) 
?

了解捕捉值和額外參數之間的優先級 額外的選項

當沖突出現的時候,額外URLconf參數優先于捕捉值。 也就是說,如果URLconf捕捉到的一個命名組變量和一個額外URLconf參數包含的變量同名時,額外URLconf參數的值會被使用。

例如,下面這個URLconf:
 

  1. from django.conf.urls.defaults import * 
  2. from mysite import views 
  3.  
  4. urlpatterns = patterns(''
  5.   (r'^mydata/(?P<id>/d+)/$', views.my_view, {'id': 3}), 
?

這里,正則表達式和額外字典都包含了一個 id 。硬編碼的(額外字典的) id 將優先使用。 就是說任何請求(比如, /mydata/2/ 或者 /mydata/432432/ )都會作 id 設置為 3 對待,不管URL里面能捕捉到什么樣的值。

聰明的讀者會發現在這種情況下,在正則表達式里面寫上捕捉是浪費時間的,因為 id 的值總是會被字典中的值覆蓋。 沒錯,我們說這個的目的只是為了讓你不要犯這樣的錯誤。

調試模式中的特例

說到動態構建 urlpatterns,你可能想利用這一技術,在 Django 的調試模式下修改 URLconf 的行為。 為了做到這一點,只要在運行時檢查 DEBUG 配置項的值即可,如:
 

  1. from django.conf import settings 
  2. from django.conf.urls.defaults import * 
  3. from mysite import views 
  4.  
  5. urlpatterns = patterns(''
  6.   (r'^$', views.homepage), 
  7.   (r'^(/d{4})/([a-z]{3})/$', views.archive_month), 
  8.  
  9. if settings.DEBUG: 
  10.   urlpatterns += patterns(''
  11.     (r'^debuginfo/$', views.debug), 
  12.   ) 
?

在這個例子中,URL鏈接/debuginfo/ 只在你的 DEBUG 配置項設為 True 時才有效。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 师宗县| 延长县| 科尔| 万山特区| 灌云县| 左云县| 广安市| 河曲县| 天峻县| 贵德县| 岐山县| 大悟县| 枞阳县| 华容县| 社会| 辽宁省| 大渡口区| 南丹县| 通道| 武宣县| 桦川县| 彰化县| 游戏| 南和县| 佛冈县| 蒙城县| 陈巴尔虎旗| 九龙城区| 邹平县| 会泽县| 博野县| 察哈| 五华县| 浪卡子县| 当阳市| 深圳市| 岱山县| 阿瓦提县| 武威市| 吴江市| 青川县|