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 引数は、URL パターンを含む文字列、または gettext_lazy() ( URL パターンを翻訳する を参照) であるべきです。この文字列には、角括弧を使用して URL の一部をキャプチャし (上記の <username> のように)、それをキーワード引数としてビューに送ることができます。角括弧には、一致する文字を制限し、ビューに渡される変数の型を変更することもできるコンバータ指定 (<int:section>int 部分のような) を含めることができます。例えば、 <int:section> は十進数の文字列に一致し、値を int に変換します。さらに詳しくは Django のリクエスト処理 を参照してください。

view 引数は、ビュー関数またはクラスベースのビューにおける as_view() の結果です。また、 django.urls.include() であることあります。

kwargs 引数を使用すると、ビュー関数またはメソッドに追加の引数を渡すことができます。例については、追加的なオプションをビュー関数に渡す を参照してください。

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 に対してマッチングされます。

viewkwargs 、そして name 引数は path() におけるものと同じです。

Changed in Django 2.2.25:

古いバージョンでは、$ で終わる route に完全一致が必要ではありませんでした。

include()

include(module, namespace=None)
include(pattern_list)
include((pattern_list, app_namespace), namespace=None)

この場所に "含める" べき他のURLconfモジュールへのフルPythonインポートパスを取る関数です。オプションで、エントリが含まれる application namespaceinstance namespace も指定できます。

通常、アプリケーションの名前空間は、include されたモジュールによって指定されるべきです。アプリケーションの名前空間が設定されている場合、 namespace 引数を使用して異なるインスタンスの名前空間を設定できます。

include() は、URL パターンを返すイテレータ、またはそのようなイテレータに加えてアプリケーションの名前空間の名前を含む 2値タプルを引数として受け入れることもできます。

パラメータ:
  • module -- URLconf モジュール(またはモジュール名)
  • namespace (str) -- インクルードされる URL エントリのインスタンス名前空間
  • pattern_list -- path() および/または re_path() のインスタンスのイテラブル。
  • app_namespace (str) -- include される URL エントリのアプリケーション名前空間

他の URLconfs をインクルードする および URLの名前空間とインクルードされた URLconfs を参照してください。

register_converter()

register_converter(converter, type_name)

path()route に使用するためのコンバータを登録するための関数です。

converter 引数はコンバータークラスであり、 type_name はパスパターンで使用するコンバーター名です。例については 独自のパスコンバータを登録する を参照してください。

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() です。カスタムビューを実装する場合には、requestexception 引数を受け入れ、 HttpResponseForbidden を返すことを確認してください。

handler404

handler404

呼び出し可能オブジェクト、もしくは、URL パターンに一致するものがない場合に呼び出されるべきビューへの完全な Python インポートパスを表す文字列。

デフォルトでは、これは django.views.defaults.page_not_found() です。カスタムビューを実装する場合は、requestexception 引数を受け取り、HttpResponseNotFound を返すようにしてください。

handler500

handler500

呼び出し可能オブジェクト、もしくはサーバーエラーが発生した場合に呼び出されるべきビューを完全なPythonインポートパスで表した文字列です。サーバーエラーは、ビューコード内で実行時エラーが発生した時に起こります。

デフォルトでは、これは django.views.defaults.server_error() です。独自のビューを実装する場合は、request 引数を受け取り、 HttpResponseServerError を返すことを確認してください。

Back to Top