目次
前述
- urlpattersでパラメータ付きURLを使う時は必須
- 一般的なWebサービスや企業向けシステムではURLパターンを引数として渡すことが多い(というかほぼ100%)
- サンプルではint型で実装したがChar型やUUID型も同様に記述
ファンクションベースビュー
urls.pyのルーティングは以下とする。
from django.urls import path
from .views import *
urlpatterns = [
path('<int:id>/', views.index(), name='index'),
]
関数ベースビューを定義する時に引数として指定することでパラメータを受け取ることができる。
def index(request, id):
HttpResponse "ID is {}" % id
クラスベースビュー
urls.pyのルーティングは以下とする。
from django.urls import path
from .views import *
urlpatterns = [
path('<int:id>/', IndexView.as_view(), name='index'),
]
上記のようにint型でidを定義した場合、kwargsがDict型でパラメータを渡される、以下のようにパラメータを取得できる。
class IndexView(TemplateView)
template_name = 'index.html'
def get(self, request, **kwargs):
ctx = {
'id': kwargs['id']
}
return self.render_to_response(ctx)