DjangoでURLにパラメータを渡す方法

DjangoでURLにパラメータを渡す方法には2つの主要な方法があります。パスパラメータとクエリパラメータを使用します。

  1. パスパラメータ

URLのパスにパラメータを直接追加することで渡されます。URLのパスでは、山括弧<>を使用してパラメータを定義し、ビューの対応する関数でパラメータを受け取ります。例えば:

# 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関数に渡します。

  1. 検索条件:

URLに「?」と続けてキーバリューペアの形で記述することでクエリパラメータが渡されます。このクエリパラメータはビュー内で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` ビュー関数にマッチし、パラメータ 123 が `request.GET.get(‘user_id’)` で取得されます。

bannerAds