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
¶
The route
argument should be a string or
gettext_lazy()
(see
URL パターンを翻訳する) that contains a URL pattern. The string
may contain angle brackets (like <username>
above) to capture part of the
URL and send it as a keyword argument to the view. The angle brackets may
include a converter specification (like the int
part of <int:section>
)
which limits the characters matched and may also change the type of the
variable passed to the view. For example, <int:section>
matches a string
of decimal digits and converts the value to an int
.
When processing a request, Django starts at the first pattern in
urlpatterns
and makes its way down the list, comparing the requested URL
against each pattern until it finds one that matches. See
Django のリクエスト処理 for more details.
Patterns don't match GET and POST parameters, or the domain name. For example,
in a request to https://www.example.com/myapp/
, the URLconf will look for
myapp/
. In a request to https://www.example.com/myapp/?page=3
, the
URLconf will also look for myapp/
.
view
¶
The view
argument is a view function or the result of
as_view()
for class-based views. It can
also be a django.urls.include()
.
When Django finds a matching pattern, it calls the specified view function with
an HttpRequest
object as the first argument and any
"captured" values from the route as keyword arguments.
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 で非推奨: Overriding existing converters is deprecated.
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
を返すことを確認してください。