Django向視圖添加URL路徑

URL 路徑可將URL 映射至視圖上。具體來講,URL 路徑由字符串路徑、視圖和可在項目範圍內命名URL的名稱(名稱爲可選參數)組成。Django 遍歷每個URL路徑,並在第一個與請求URL匹配的路徑處中止。隨後,Django 導入與URL 路徑匹配的視圖並對其加以執行、傳遞HttpRequest 類實例和關鍵字(或者位置參數)。正則表達式

下面在blog 應用程序目錄的urls.py 文件中添加下列代碼行:django

from django.urls import path
from . import views

app_name = 'blog'

urlpatterns = [
    path('', views.post_list, name='post_list'),  
    path('<int:year>/<int:month>/<int:day>/<slug:post>/', views.post_detail, name='post_detail'),
]

在上述代碼中,經過app_name變量定義了應用程序命名空間,並可經過應用程序組織URL,並在引用時使用對應名稱。這裏經過 path() 函數定義了兩種不一樣的路徑。其中,第一個URL 路徑不接收任何參數,並映射至 post_list 視圖。第二個路徑接收下列4個參數,並映射至post_detail 視圖上。app

此處,咱們使用尖括號捕捉URL值。任何定義於URL 路徑中的值(形如<parameter>)均做爲字符串被捕捉。咱們將使用路徑轉換器(如<int:year>)以實現特定的匹配,並返回一個整數和<slug:post>,其與slug 實現特定的匹配(由ASCII字母、數字、連字符和下劃線構成的字符串)。函數

若是path() 和轉換器沒法知足當前要求,則可採用 re_path() 定義包含 Python 正則表達式的複雜URL 路徑。post

 

接下來,須要在項目的主URL 路徑中包含blog 應用程序的URL路徑。對此,可編輯位於項目mysite 目錄中的 urls.py 文件,以下所示:url

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', namespace='blog')),
]

利用include 定義的新URL 路徑引用了定義於blog 應用程序中的URL 路徑,於是包含於blog/路徑中。另外,此類路徑還位於命名空間blog中。此外,命名空間須在整個項目中保持惟一。稍後,咱們便可方便的引用blog URL,如blog:post_list 和 blog:post_detail。spa

後面本人將對如何建立視圖模板進行講解,謝謝你們的支持。code

相關文章
相關標籤/搜索