---
title: "URLconf で使用するための django.urls 関数"
version: 5.0
locale: ja
source: https://docs.djangoproject.com/ja/5.0/ref/urls/
canonical: https://djangodocs.dev/ja/5.0/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("blog/", include("blog.urls")),
    ...,
]
```

`route` 引数は、URL パターンを含む文字列、または [`gettext_lazy()`](/ja/5.0/ref/utils/#django.utils.translation.gettext_lazy) ( [URL パターンを翻訳する](/ja/5.0/topics/i18n/translation/#translating-urlpatterns) を参照) であるべきです。この文字列には、角括弧を使用して URL の一部をキャプチャし (上記の `<username>` のように)、それをキーワード引数としてビューに送ることができます。角括弧には、一致する文字を制限し、ビューに渡される変数の型を変更することもできるコンバータ指定 (`<int:section>` の `int` 部分のような) を含めることができます。例えば、 `<int:section>` は十進数の文字列に一致し、値を `int` に変換します。さらに詳しくは [Django のリクエスト処理](/ja/5.0/topics/http/urls/#how-django-processes-a-request) を参照してください。

`view` 引数は、ビュー関数またはクラスベースのビューにおける  [`as_view()`](/ja/5.0/ref/class-based-views/base/#django.views.generic.base.View.as_view) の結果です。また、 [`django.urls.include()`](#django.urls.include) であることあります。

`kwargs` 引数を使用すると、ビュー関数またはメソッドに追加の引数を渡すことができます。例については、[追加的なオプションをビュー関数に渡す](/ja/5.0/topics/http/urls/#views-extra-options) を参照してください。

`name` 引数が有用な理由については、[URL パターンの命名](/ja/5.0/topics/http/urls/#naming-url-patterns) を参照してください。

## `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`](https://docs.python.org/3/library/re.html#module-re) モジュールと互換性のある正規表現を含む、文字列または [`gettext_lazy()`](/ja/5.0/ref/utils/#django.utils.translation.gettext_lazy) ( [URL パターンを翻訳する](/ja/5.0/topics/i18n/translation/#translating-urlpatterns) を参照) でなければなりません。文字列では通常、生文字列の構文 (`r''`) を使用して、`\d` のようなシーケンスを含むことができるように、バックスラッシュを別のバックスラッシュでエスケープする必要がないようにします。一致が見つかった場合、正規表現からキャプチャされたグループがビューに渡されます ―― グループに名前がある場合は名前付き引数として、それ以外の場合は位置引数としてです。値は文字列として渡され、型変換は行われません。

`route` が `$` で終わる場合、リクエストされた全 URL が正規表現パターンと一致する必要があります（[`re.fullmatch()`](https://docs.python.org/3/library/re.html#re.fullmatch) が使用されます）。これは [`path_info`](/ja/5.0/ref/request-response/#django.http.HttpRequest.path_info) に対してマッチングされます。

`view` 、 `kwargs` 、そして `name` 引数は [`path()`](#django.urls.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 namespace](/ja/5.0/topics/http/urls/#term-application-namespace) と [instance namespace](/ja/5.0/topics/http/urls/#term-instance-namespace) も指定できます。

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

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

**パラメータ:** - `module` -- URLconf モジュール（またはモジュール名）
- `namespace` ([`str`](https://docs.python.org/3/library/stdtypes.html#str)) -- インクルードされる URL エントリのインスタンス名前空間
- `pattern_list` -- [`path()`](#django.urls.path) および/または [`re_path()`](#django.urls.re_path) のインスタンスのイテラブル。
- `app_namespace` ([`str`](https://docs.python.org/3/library/stdtypes.html#str)) -- include される URL エントリのアプリケーション名前空間

[他の URLconfs をインクルードする](/ja/5.0/topics/http/urls/#including-other-urlconfs) および [URLの名前空間とインクルードされた URLconfs](/ja/5.0/topics/http/urls/#namespaces-and-include) を参照してください。

## `register_converter()`

#### `register_converter(converter, type_name)`

[`path()`](#django.urls.path) の `route` に使用するためのコンバータを登録するための関数です。

`converter` 引数はコンバータークラスであり、 `type_name` はパスパターンで使用するコンバーター名です。例については [独自のパスコンバータを登録する](/ja/5.0/topics/http/urls/#registering-custom-path-converters) を参照してください。

# 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()`](/ja/5.0/ref/views/#django.views.defaults.bad_request) です。カスタムビューを実装する場合は、`request` および `exception` 引数を受け入れ、 [`HttpResponseBadRequest`](/ja/5.0/ref/request-response/#django.http.HttpResponseBadRequest) を返すことを確認してください。

## `handler403`

#### `handler403`

呼び出し可能オブジェクト、またはユーザーがリソースへのアクセスに必要な権限を持っていない場合に呼び出されるべきビューの完全な Python インポートパスを表す文字列。

デフォルトでは、これは [`django.views.defaults.permission_denied()`](/ja/5.0/ref/views/#django.views.defaults.permission_denied) です。カスタムビューを実装する場合には、`request` と `exception` 引数を受け入れ、 [`HttpResponseForbidden`](/ja/5.0/ref/request-response/#django.http.HttpResponseForbidden) を返すことを確認してください。

## `handler404`

#### `handler404`

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

デフォルトでは、これは [`django.views.defaults.page_not_found()`](/ja/5.0/ref/views/#django.views.defaults.page_not_found) です。カスタムビューを実装する場合は、`request` と `exception` 引数を受け取り、[`HttpResponseNotFound`](/ja/5.0/ref/request-response/#django.http.HttpResponseNotFound) を返すようにしてください。

## `handler500`

#### `handler500`

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

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