django中url對映規則和服務端響應順序的實現

2022-10-03 12:15:15 字數 2195 閱讀 5905

1、django搜尋路徑

使用 import 語句時,python 所查詢的系統目錄清單。

檢視方式:

import sys

print sys.path

通常無需關心 python 搜尋路徑的設定,程式設計客棧python 和 django 會在後台自動幫你處理好。

2、url匹配模式

基本結構:

'^需要匹配的url字串$'

ps:實際上最終完整的url串是http://根路徑:埠號/需要匹配的url字串

系統自動新增的部分'http://根路徑:埠號/'

eg:url匹配模式:'^latest_books/$'

最終完整的url字串:''

1)^:匹配「子串頭」。

eg:'^latest_books/'

'','test1/',

'test2/',

'test1/aaa/'

都會被匹配上。    

2)$:匹配「子串結尾」。

eg:'latest_books/$'

'','',

''都會被匹配上。

3)子串末尾是否包含'/'

預設情況下必須添bftglfknij加(django開發者的基本習慣),如果不新增將會出現如下情況:

from django.conf.urls import patterns, url, include

urlpatterns = patterns('',

(r'^latest_books$', 'django_web_app.views.latest_books'),

)如果子串末尾不想包含'/',可在setting.py中新增設定:append_slash=false

但是必須安裝了commonmiddleware才會起作用。

4)手動配置**「根目錄」

在不手動配置**「根目錄」對應「檢視函式」的情況下,會出現如下情況:

手動配置「根目錄」對應「檢視函式」:

a)urls.py

from django.conf.urls import patterns,www.cppcns.com url, include

urlpatterns = patterns('',

(r'^$','django_web_app.views.home_page'),

(r'^latest_books/$', 'django_web_app.views.latest_books'),

)b)views.py

def home_page(request):

return render_to_rbftglfknijesponse('home_page.html')

c)home_page.html

my home page

執行結果:

附:正規表示式基礎

3、服務端響應url請求的執行順序

1)專案結構

django_web

__init__.py

settings.py

urls.py

wsgi.py

django_web_app

__init__.py

admin.py

models.py

tests.py

views.py

templates

home_page.html

latest_books.html

manage.py

2)執行順序

a)啟動服務端——python manage.py runserver

獲取setting.py檔案中的配置,主要包括:

url對映關係檔案路徑:

root_urlconf = 'django_web.urls'

頁面檔案模板路徑:

template_dirs = (

os.path.join(base_dir, 'templates'),

)資料庫配置:

databases =

}b)響應順序

第一步:瀏覽器提交請求

第二步:服務端根據請求的url在urls.py中進行匹配,並找到對應的「檢視函式」

第三步:呼叫對應的「檢視函式」

返回乙個httpresponse物件

第四步:django轉換httpresponse物件為乙個適合的http response,並返回給頁面進行顯示

Django中url匹配規則的補充

django中url匹配規則是在urls.py檔案中配置的。1 關於正則匹配優先順序 在url匹配列表中,如果第一條和第二條同時滿足匹配規則,則優先匹配第一條。在url匹配列表中,如果第一條為正則模糊匹配,第二條為精確匹配,則優先匹配第一條。如下 url r 2016 0 9 views.001 u...

django中url和reverse使用

使用url標籤和reverse 函式,可以避免在模板和view中對url進行硬編碼,這樣即使url改變了,對模板和view也沒有影響,其實在模板,view中,如果想獲取當前訪問的url,那用request.path或request.get full path 是更方便的選擇,當然,如果想在templ...

Django學習筆記(二)URL編寫規則

from django.contrib import admin from django.urls import path urlpatterns 整個專案的url集合,每個元素代表一條url資訊 path admin admin.site.urls 設定admin的url,admin 代表127....