URLconf で使用するための django.urls
関数¶
path()
¶
- path(route, view, kwargs=None, name=None)¶
urlpatterns
に含める要素を返します。例えば:
from django.urls import include, path
urlpatterns = [
path("index/", views.index, name="main-view"),
path("bio/<username>/", views.bio, name="bio"),
path("articles/<slug:title>/", views.article, name="article-detail"),
path("articles/<slug:title>/<int:section>/", views.section, name="article-section"),
path("blog/", include("blog.urls")),
...,
]
route
¶
route
引数は、URLパターンを含む文字列または gettext_lazy()
(詳細は URL パターンを翻訳する を参照)である必要があります。この文字列には、URLの一部をキャプチャし、ビューにキーワード引数として渡すための角括弧(上記の <username>
のような)を含めることができます。角括弧の中には、変換器の仕様(例えば、 <int:section>
の int
部分)のように、マッチする文字を制限したり、ビューに渡される変数の型を変更したりすることができます。例えば、<int:section>
は10進数の数字の文字列にマッチし、その値を``int``に変換します。
リクエストを処理する際、Djangoは urlpatterns
の最初のパターンから処理を開始し、リストを順番に進みながら、リクエストされたURLと各パターンを比較します。一致するパターンが見つかるまでこの比較を行い、最初に一致したパターンが処理されます。詳細については、Django のリクエスト処理 を参照してください。
URLパターンは、GETやPOSTのパラメータやドメイン名にはマッチしません。例えば、https://www.example.com/myapp/
へのリクエストでは、URLconfは myapp/
を探します。また、https://www.example.com/myapp/?page=3
へのリクエストでも、URLconfは同様に myapp/
を探します。
view
¶
view
引数は、ビュー関数、またはクラスベースビューの場合は as_view()
の結果です。また、view
引数には、django.urls.include()
を指定することもできます。
Djangoが一致するパターンを見つけると、指定されたビュー関数を呼び出し、最初の引数として HttpRequest
オブジェクトを渡し、ルートから「キャプチャされた」値をキーワード引数として渡します。
kwargs
¶
kwargs
引数を使用すると、ビュー関数またはメソッドに追加の引数を渡すことができます。例については、追加的なオプションをビュー関数に渡す を参照してください。
name
¶
URL に名前付けをしておけば Django のどこからでも明確に参照でき、とくにテンプレートの中で有効です。この便利な機能のおかげで、プロジェクトのURLにグローバルな変更を加える場合にも1つのファイルを変更するだけで済むようになります。
name
引数が有用な理由については、URL パターンの命名 を参照してください。
re_path()
¶
- re_path(route, view, kwargs=None, name=None)¶
urlpatterns
に含める要素を返します。例えば:
from django.urls import include, re_path
urlpatterns = [
re_path(r"^index/$", views.index, name="index"),
re_path(r"^bio/(?P<username>\w+)/$", views.bio, name="bio"),
re_path(r"^blog/", include("blog.urls")),
...,
]
route
引数は、Python の re
モジュールと互換性のある正規表現を含む、文字列または gettext_lazy()
( URL パターンを翻訳する を参照) でなければなりません。文字列では通常、生文字列の構文 (r''
) を使用して、\d
のようなシーケンスを含むことができるように、バックスラッシュを別のバックスラッシュでエスケープする必要がないようにします。一致が見つかった場合、正規表現からキャプチャされたグループがビューに渡されます ―― グループに名前がある場合は名前付き引数として、それ以外の場合は位置引数としてです。値は文字列として渡され、型変換は行われません。
route
が $
で終わる場合、リクエストされた全 URL が正規表現パターンと一致する必要があります(re.fullmatch()
が使用されます)。これは path_info
に対してマッチングされます。
view
、 kwargs
、そして name
引数は path()
におけるものと同じです。
include()
¶
- include(module, namespace=None)[ソース]¶
- include(pattern_list)
- include((pattern_list, app_namespace), namespace=None)
この場所に "含める" べき他のURLconfモジュールへのフルPythonインポートパスを取る関数です。オプションで、エントリが含まれる application namespace と instance namespace も指定できます。
通常、アプリケーションの名前空間は、include されたモジュールによって指定されるべきです。アプリケーションの名前空間が設定されている場合、
namespace
引数を使用して異なるインスタンスの名前空間を設定できます。include()
は、URL パターンを返すイテレータ、またはそのようなイテレータに加えてアプリケーションの名前空間の名前を含む 2値タプルを引数として受け入れることもできます。
他の URLconfs をインクルードする および URLの名前空間とインクルードされた URLconfs を参照してください。
register_converter()
¶
path()
の route
に使用するためのコンバータを登録するための関数です。
converter
引数はコンバータークラスであり、 type_name
はパスパターンで使用するコンバーター名です。例については 独自のパスコンバータを登録する を参照してください。
バージョン 5.1 で非推奨: 既存のコンバータをオーバーライドすることは非推奨になりました。
URLconf で使用するための django.conf.urls
の関数¶
static()
¶
- static.static(prefix, view=django.views.static.serve, **kwargs)¶
デバッグモードでファイルを配信するための URL パターンを返すヘルパー関数です:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler400
¶
- handler400¶
呼び出し可能オブジェクト、またはエラー状態を引き起こし、ステータスコードが400のレスポンスを送信した場合に呼び出されるべきビューへの完全なPythonインポートパスを表す文字列です。 HTTPクライアントがリクエストを送信した場合に該当します。
デフォルトでは、これは django.views.defaults.bad_request()
です。カスタムビューを実装する場合は、request
および exception
引数を受け入れ、 HttpResponseBadRequest
を返すことを確認してください。
handler403
¶
- handler403¶
呼び出し可能オブジェクト、またはユーザーがリソースへのアクセスに必要な権限を持っていない場合に呼び出されるべきビューの完全な Python インポートパスを表す文字列。
デフォルトでは、これは django.views.defaults.permission_denied()
です。カスタムビューを実装する場合には、request
と exception
引数を受け入れ、 HttpResponseForbidden
を返すことを確認してください。
handler404
¶
- handler404¶
呼び出し可能オブジェクト、もしくは、URL パターンに一致するものがない場合に呼び出されるべきビューへの完全な Python インポートパスを表す文字列。
デフォルトでは、これは django.views.defaults.page_not_found()
です。カスタムビューを実装する場合は、request
と exception
引数を受け取り、HttpResponseNotFound
を返すようにしてください。
handler500
¶
- handler500¶
呼び出し可能オブジェクト、もしくはサーバーエラーが発生した場合に呼び出されるべきビューを完全なPythonインポートパスで表した文字列です。サーバーエラーは、ビューコード内で実行時エラーが発生した時に起こります。
デフォルトでは、これは django.views.defaults.server_error()
です。独自のビューを実装する場合は、request
引数を受け取り、 HttpResponseServerError
を返すことを確認してください。