日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Django 视图URLconf3.1

發布時間:2023/11/28 生活经验 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django 视图URLconf3.1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

URLconf

  • 在settings.py文件中通過ROOT_URLCONF指定根級url的配置
  • urlpatterns是一個url()實例的列表
  • 一個url()對象包括:
    • 正則表達式
    • 視圖函數
    • 名稱name
  • 編寫URLconf的注意:
    • 若要從url中捕獲一個值,需要在它周圍設置一對圓括號
    • 不需要添加一個前導的反斜杠,如應該寫作'test/',而不應該寫作'/test/'
    • 每個正則表達式前面的r表示字符串不轉義
  • 請求的url被看做是一個普通的python字符串,進行匹配時不包括get或post請求的參數及域名
http://www.itcast.cn/python/1/?i=1&p=new,只匹配“/python/1/”部分
  • 正則表達式非命名組,通過位置參數傳遞給視圖
url(r'^([0-9]+)/$', views.detail, name='detail'),
  • 正則表達式命名組,通過關鍵字參數傳遞給視圖,本例中關鍵字參數為id
url(r'^(?P<id>[0-9]+)/$', views.detail, name='detail'),
  • 參數匹配規則:優先使用命名參數,如果沒有命名參數則使用位置參數
  • 每個捕獲的參數都作為一個普通的python字符串傳遞給視圖
  • 性能:urlpatterns中的每個正則表達式在第一次訪問它們時被編譯,這使得系統相當快

包含其它的URLconfs

  • 在應用中創建urls.py文件,定義本應用中的urlconf,再在項目的settings中使用include()
from django.conf.urls import include, url
urlpatterns = [url(r'^', include('booktest.urls', namespace='booktest')),
]
  • 匹配過程:先與主URLconf匹配,成功后再用剩余的部分與應用中的URLconf匹配
請求http://www.itcast.cn/booktest/1/
在sesstings.py中的配置:
url(r'^booktest/', include('booktest.urls', namespace='booktest')),
在booktest應用urls.py中的配置
url(r'^([0-9]+)/$', views.detail, name='detail'),
匹配部分是:/booktest/1/
匹配過程:在settings.py中與“booktest/”成功,再用“1/”與booktest應用的urls匹配
  • 使用include可以去除urlconf的冗余
  • 參數:視圖會收到來自父URLconf、當前URLconf捕獲的所有參數
  • 在include中通過namespace定義命名空間,用于反解析

URL的反向解析

  • 如果在視圖、模板中使用硬編碼的鏈接,在urlconf發生改變時,維護是一件非常麻煩的事情
  • 解決:在做鏈接時,通過指向urlconf的名稱,動態生成鏈接地址
  • 視圖:使用django.core.urlresolvers.reverse()函數
  • 模板:使用url模板標簽

總結

以上是生活随笔為你收集整理的Django 视图URLconf3.1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。