django的url分配和url捕獲參數

django的url分配html

  • 通常視圖模塊(views.py)都放在本身所屬的app目錄下,在app目錄下新建路徑模塊(urls.py),由app目錄下的urls.py來分配當前app的路徑。
  • 在app目錄下新建視圖函數
    1 from django.shortcuts import render, HttpResponse
    2 
    3 
    4 # Create your views here.
    5 
    6 
    7 def test(request):
    8     return HttpResponse("HELLO WORLD")
  • 而後再到app目錄下的urls.py中配置路由
    1 from django.urls import path
    2 from .views import *
    3 
    4 app_name = 'crm'
    5 
    6 urlpatterns = [
    7     path('test.html/', test),
    8 ]

    path方法裏面有兩個參數,第一個是視圖函數的路由,第二個是該路由對應的視圖函數的函數名(注意是函數名,不要帶括號)python

  • app_name是當前app名的字符串,防止在後面的path,repath中出現重複的url名而發生難以進行的區分和管理。
  • 最後帶項目跟目錄下配置該app的路徑,將app目錄裏的urls.py包裹在項目根目錄下的urls.py裏
    1 from django.contrib import admin
    2 from django.urls import path, include
    3 
    4 
    5 urlpatterns = [
    6     path('admin/', admin.site.urls),
    7     path('crm/', include('crm.urls')),
    8 ]

    這個path接受兩個參數,第一個是須要包含的app的名字,以"/"結尾, include裏接受一個字符串("%s.urls" % app_name)django

  • 最後啓動服務,在manager.py的同級目錄下 : python    manager.py    runserver   127.0.0.1:1234  (你能映射的ip地址)。 而後打開瀏覽器輸入:127.0.0.1:1234/crm/test.html便可看到視圖函數返回的頁面
  • path的完整規則:    path(route, view, kwargs=None, name=None)
  • route:是一個路由規則
  • view是視圖函數名
  • kwargs額外參數,是一個字典
  • name是url規則的名字

 

django在url中捕獲參數瀏覽器

  在urls.py(項目目錄下)定義url規則時使用變量名能夠捕獲url中的值,傳遞給視圖app

  • 到app下的view模塊中新建個帶有參數的視圖函數
    1 from django.shortcuts import render, HttpResponse
    2 
    3 # Create your views here.
    4 def test(request):
    5     return HttpResponse("HELLO WORLD")
    6 
    7 def index(request, pk):
    8     return HttpResponse("你輸入的參數是:%s" % pk)
  • 再到app下的urls.py中爲這個函數配置路由,用<>包裹視圖函數中的參數
    1 from django.urls import path
    2 from .views import *
    3 
    4 app_name = 'crm'
    5 
    6 urlpatterns = [
    7     path('test.html/', test),
    8     path('index/<pk>/', index)
    9 ]

     注意每條路由都由"/"結尾函數

  • 最後啓動服務,在瀏覽器中輸入:127.0.0.1:1234/index/8, 返回想應得頁面

         

  • 注意:路由中的參數必須和視圖函數中的一致

  路徑轉換器ui

  當咱們想約束參數的類型的時,能夠使用路徑轉換器url

  常見的路徑轉換器:spa

  • int:必須爲整數
  • str:匹配除了"/"路徑分割符以外的全部的字符串
  • slug:匹配任意ASCII字符+連字符和下劃線
  • uuid:格式化uuid
  • path:匹配任意非空字符

  轉換器用法:code

path('index/<int:pk>/', index)

  注意:轉換器(int)和參數中的冒號之間不能有空格

相關文章
相關標籤/搜索