この記事では、Django(ジャンゴ)のURLルーティングの設定について詳しく解説します。初めてDjangoを使ってWebアプリケーションを開発する人はもちろん、既にDjangoに慣れている人でも、この記事を通してURLルーティングについての理解を深めることができるでしょう。具体的なコード例とその解説、さらに応用例を2つ紹介しています。
URLルーティングとは
URLルーティングとは、Webアプリケーションでクライアントからのリクエストが来た際に、そのリクエストを適切なビュー(View)に振り分ける仕組みのことです。Djangoではこのルーティングを`urls.py`という設定ファイルで行います。
Djangoでの基本的なURLルーティングの設定
DjangoでURLルーティングを設定する基本は、`urls.py`内で`urlpatterns`リストを使って設定することです。
基本的な例
# urls.pyの例
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
]
上記のコードでは、ルートURL(’/’)にアクセスがあった場合に`views.index`というビューが呼ばれ、’/about/’にアクセスがあった場合には`views.about`というビューが呼ばれるようになっています。
正規表現を使用したルーティング
# 正規表現を使用した例
from django.urls import re_path
import re
urlpatterns = [
re_path(r'^articles/(?P[0-9]{4})/$', views.year_archive),
]
この設定では、`/articles/2022/`といったURLにアクセスすると、`year_archive`ビューが呼び出されます。そして、そのビューでは`year`という変数が2022として受け取られます。
応用例
応用1: クエリパラメータの取得
# views.pyの例
from django.http import HttpResponse
def search(request):
query = request.GET.get('q', '')
return HttpResponse(f'You searched for {query}')
# urls.pyの例
urlpatterns = [
path('search/', views.search, name='search'),
]
この例では、`/search/?q=キーワード`というURLで検索クエリを受け取る設定になっています。
応用2: 複数のURLパターンに対応
# urls.pyの例
from django.urls import path, include
urlpatterns = [
path('articles/', include('articles.urls')),
path('blog/', include('blog.urls')),
]
この設定例では、`/articles/`と`/blog/`という2つの異なるURLパスに対して、それぞれ別のアプリケーションの`urls.py`を読み込む設定になっています。
まとめ
DjangoでのURLルーティングは非常に柔軟で、多くのニーズに対応することができます。基本的な設定から応用例まで幅広く解説しましたので、この記事がDjangoでのWeb開発を行う上での参考になれば幸いです。
コメント