您好,登錄后才能下訂單哦!
這篇文章主要介紹了django模板配置視圖和url的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
在創建項目時,Django會自動創建URL配置,在urls.py文件中
文件的默認內容如下所示:
"""mysite URL Configuration The urlpatterns list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.8/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Add an import: from blog import urls as blog_urls 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls)) """ from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), ]
去掉注釋,剩下的都是精華,逐行分析:
第一行從 django.conf.urls 模塊中導入兩個函數:include,用于導入另一個 URL 配置模塊;url,使用正則表達式模式匹配瀏覽器中的 URL,把它映射到 Django 項目中的某個模塊上。
第二行從 django.contrib 模塊中導入 admin 函數。這個函數傳給 include 函數,加載 Django 管理后臺的 URL。
第三行是 urlpatterns,即 url() 實例列表。Django期待URL配置中有urlpatterns這個對象,它負責定義 URL 與處理URL 的代碼之間的映射。在 URL 配置中添加 URL 和視圖的方式是,把 URL 模式映射到視圖函數上。
注意:
url函數的第一個參數是正則表達式,第二個是視圖函數
如果我們指定的URL模式要求末尾有/,默認情況下,如果請求的 URL 不匹配任何 URL 模式,而且末尾沒有斜線,那么 Django 會把它重定向到末尾帶斜線的 URL
我們以對象的形式傳入視圖函數,而沒有調用函數
Django處理請求的過程
創建Django項目時,自動創建了setting.py文件,保存了當前項目的全部配置,各個配置的名稱都是大寫,例如TEMPLATE_DIRS,DATABASES等,其中ROOT_URLCONF,指向自動生成的urls.py,它告訴Django,網站的URL配置在哪個Python模塊。收到針對某個 URL的請求時,Django 加載 ROOT_URLCONF 設置指定的 URL 配置;然后按順序檢查 URL 配置中的各個 URL 模式,依次與請求的 URL 比 較,直到找到匹配的模式為止。
找到匹配的模式后,調用對應的視圖函數,把一個HttpRequest對象作為第一個參數傳給視圖函數,視圖函數必須返回一個HttpResponse對象。
綜上,整個過程如下:
收到請求
Django查看ROOT_URLCONF設置,找到根URL配置
Django比較URL配置中的各個URL模式,找到與請求匹配的那個
如果找到,調用對應的視圖函數
視圖函數返回一個HttpResponse對象
Django把HttpResponse對象轉換成正確的HTTP響應,得到網頁。
感謝你能夠認真閱讀完這篇文章,希望小編分享django模板配置視圖和url的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。