django url傳遞參數(shù)的方法是什么

小億
133
2023-10-08 22:00:28

Django中向URL傳遞參數(shù)的方法主要有兩種:使用路徑參數(shù)和使用查詢參數(shù)。

  1. 路徑參數(shù):

路徑參數(shù)是通過(guò)在URL中直接添加參數(shù)來(lái)傳遞的。在URL的路徑中使用尖括號(hào)<>來(lái)定義參數(shù),并在views中的相應(yīng)函數(shù)中接收參數(shù)。例如:

# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('user/<int:user_id>/', views.user_detail, name='user_detail'),
]
# views.py
from django.shortcuts import render
def user_detail(request, user_id):
# 使用user_id進(jìn)行相應(yīng)的處理
return render(request, 'user_detail.html', {'user_id': user_id})

在上面的例子中,URL user/123/ 可以匹配到user_detail視圖函數(shù),同時(shí)將參數(shù)123傳遞給user_detail函數(shù)。

  1. 查詢參數(shù):

查詢參數(shù)是通過(guò)在URL中使用?后面跟著鍵值對(duì)的形式來(lái)傳遞的。在views中可以通過(guò)request.GET來(lái)獲取查詢參數(shù)。例如:

# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('user/', views.user_detail, name='user_detail'),
]
# views.py
from django.shortcuts import render
def user_detail(request):
user_id = request.GET.get('user_id')
# 使用user_id進(jìn)行相應(yīng)的處理
return render(request, 'user_detail.html', {'user_id': user_id})

在上面的例子中,URL user/?user_id=123 可以匹配到user_detail視圖函數(shù),并通過(guò)request.GET.get('user_id')獲取到參數(shù)123。

0