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

首頁 > 編程 > Python > 正文

Python的Django框架中從url中捕捉文本的方法

2020-01-04 18:01:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python的Django框架中從url中捕捉文本的方法,以及URLconf搜索的一些相關情況,需要的朋友可以參考下


每個被捕獲的參數將被作為純Python字符串來發送,而不管正則表達式中的格式。 舉個例子,在這行URLConf中:
 
  1. (r'^articles/(?P<year>/d{4})/$', views.year_archive), 

盡管 /d{4} 將只匹配整數的字符串,但是參數 year 是作為字符串傳至 views.year_archive() 的,而不是整型。
當你在寫視圖代碼時記住這點很重要,許多Python內建的方法對于接受的對象的類型很講究。 許多內置Python函數是挑剔的(這是理所當然的)只接受特定類型的對象。 一個典型的的錯誤就是用字符串值而不是整數值來創建 datetime.date 對象:
 
  1. >>> import datetime 
  2. >>> datetime.date('1993''7''9'
  3. Traceback (most recent call last): 
  4.   ... 
  5. TypeError: an integer is required 
  6. >>> datetime.date(1993, 7, 9) 
  7. datetime.date(1993, 7, 9) 

回到URLconf和視圖處,錯誤看起來很可能是這樣:
 
  1. # urls.py 
  2.  
  3. from django.conf.urls.defaults import * 
  4. from mysite import views 
  5.  
  6. urlpatterns = patterns(''
  7.   (r'^articles/(/d{4})/(/d{2})/(/d{2})/$', views.day_archive), 
  8.  
  9. # views.py 
  10.  
  11. import datetime 
  12.  
  13. def day_archive(request, year, month, day): 
  14.   # The following statement raises a TypeError! 
  15.   date = datetime.date(year, month, day) 

因此, day_archive() 應該這樣寫才是正確的:
 
  1. def day_archive(request, year, month, day): 
  2.   date = datetime.date(int(year), int(month), int(day)) 

注意,當你傳遞了一個并不完全包含數字的字符串時, int() 會拋出 ValueError 的異常,不過我們已經避免了這個錯誤,因為在URLconf的正則表達式中已經確保只有包含數字的字符串才會傳到這個視圖函數中。
決定URLconf搜索的東西
當一個請求進來時,Django試著將請求的URL作為一個普通Python字符串進行URLconf模式匹配(而不是作為一個Unicode字符串)。 這并不包括 GET 或 POST 參數或域名。 它也不包括第一個斜杠,因為每個URL必定有一個斜杠。
例如,在向 http://www.example.com/myapp/ 的請求中,Django將試著去匹配 myapp/ 。在向 http://www.example.com/myapp/?page=3 的請求中,Django同樣會去匹配 myapp/ 。
在解析URLconf時,請求方法(例如, POST , GET , HEAD )并 不會 被考慮。 換而言之,對于相同的URL的所有請求方法將被導向到相同的函數中。 因此根據請求方法來處理分支是視圖函數的責任。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杂多县| 庆阳市| 江津市| 永宁县| 湘乡市| 方山县| 辽阳市| 晋中市| 石狮市| 永修县| 阜新| 阳谷县| 比如县| 合水县| 始兴县| 株洲市| 赣州市| 宜兰县| 景东| 吉林省| 武鸣县| 郓城县| 织金县| 怀远县| 蓝田县| 宁海县| 嘉禾县| 六枝特区| 延庆县| 榆社县| 大姚县| 眉山市| 仙游县| 陇西县| 邵武市| 商河县| 德阳市| 怀柔区| 洛扎县| 湘阴县| 南阳市|