URLconfで使用するdjango.urls関数—Djangoドキュメント

提供:Dev Guides
< DjangoDjango/docs/3.2.x/ref/urls
移動先:案内検索

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('weblog/', include('blog.urls')),
    ...
]

route引数は、URLパターンを含む文字列または gettext_lazy()URLパターンの変換を参照)である必要があります。 文字列には、URLの一部をキャプチャし、それをキーワード引数としてビューに送信するために、山かっこ(上記の<username>など)を含めることができます。 山かっこには、一致する文字を制限し、ビューに渡される変数のタイプを変更するコンバーター仕様([X65X] のint部分など)を含めることができます。 たとえば、<int:section>は10進数の文字列と一致し、値を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'^weblog/', include('blog.urls')),
    ...
]

route引数は、Pythonのreモジュールと互換性のある正規表現を含む文字列または gettext_lazy()URLパターンの変換を参照)である必要があります。 文字列は通常、生の文字列構文(r)を使用するため、バックスラッシュを別のバックスラッシュでエスケープする必要なしに、\dのようなシーケンスを含めることができます。 一致が行われると、正規表現からキャプチャされたグループがビューに渡されます。グループに名前が付けられている場合は名前付き引数として、そうでない場合は位置引数として渡されます。 値は、型変換なしで文字列として渡されます。

viewkwargsnameの引数は、 path()の場合と同じです。


include()

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

この場所に「含める」必要がある別のURLconfモジュールへの完全なPythonインポートパスを取得する関数。 オプションで、エントリが含まれるアプリケーション名前空間およびインスタンス名前空間も指定できます。

通常、アプリケーションの名前空間は、含まれているモジュールで指定する必要があります。 アプリケーションの名前空間が設定されている場合は、namespace引数を使用して別のインスタンスの名前空間を設定できます。

include()は、URLパターンを返すiterable、またはそのようなiterableとアプリケーション名前空間の名前を含む2タプルのいずれかを引数として受け入れます。

パラメーター
  • module – URLconfモジュール(またはモジュール名)

  • namespacestr )–含まれているURLエントリのインスタンス名前空間

  • pattern_listpath()および/または re_path()インスタンスの反復可能。

  • app_namespacestr )–含まれているURLエントリのアプリケーション名前空間

他のURLconfを含めるおよび URL名前空間と含まれるURLconf を参照してください。


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)

url()

url(regex, view, kwargs=None, name=None)

この関数は、 django.urls.re_path()のエイリアスです。

バージョン3.1以降非推奨:下位互換性のための django.urls.re_path()のエイリアス。


handler400

handler400

呼び出し可能オブジェクト、またはHTTPクライアントがエラー状態を引き起こす要求とステータスコード400の応答を送信した場合に呼び出されるビューへの完全なPythonインポートパスを表す文字列。

デフォルトでは、これは 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 を返すことを確認してください。