Django中向URL傳遞參數的方法主要有兩種:使用路徑參數和使用查詢參數。
路徑參數是通過在URL中直接添加參數來傳遞的。在URL的路徑中使用尖括號<>
來定義參數,并在views中的相應函數中接收參數。例如:
# 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進行相應的處理
return render(request, 'user_detail.html', {'user_id': user_id})
在上面的例子中,URL user/123/
可以匹配到user_detail
視圖函數,同時將參數123
傳遞給user_detail
函數。
查詢參數是通過在URL中使用?
后面跟著鍵值對的形式來傳遞的。在views中可以通過request.GET
來獲取查詢參數。例如:
# 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進行相應的處理
return render(request, 'user_detail.html', {'user_id': user_id})
在上面的例子中,URL user/?user_id=123
可以匹配到user_detail
視圖函數,并通過request.GET.get('user_id')
獲取到參數123
。