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

`route` 引数は、URLパターンを含む文字列または [`gettext_lazy()`](/ja/5.2/ref/utils/#django.utils.translation.gettext_lazy) （詳細は [URL パターンを翻訳する](/ja/5.2/topics/i18n/translation/#translating-urlpatterns) を参照）である必要があります。この文字列には、URLの一部をキャプチャし、ビューにキーワード引数として渡すための角括弧（上記の `<username>` のような）を含めることができます。角括弧の中には、変換器の仕様（例えば、 `<int:section>` の `int` 部分）のように、マッチする文字を制限したり、ビューに渡される変数の型を変更したりすることができます。例えば、`<int:section>` は10進数の数字の文字列にマッチし、その値を\`\`int\`\`に変換します。

リクエストを処理する際、Djangoは `urlpatterns` の最初のパターンから処理を開始し、リストを順番に進みながら、リクエストされたURLと各パターンを比較します。一致するパターンが見つかるまでこの比較を行い、最初に一致したパターンが処理されます。詳細については、[Django のリクエスト処理](/ja/5.2/topics/http/urls/#how-django-processes-a-request) を参照してください。

URLパターンは、GETやPOSTのパラメータやドメイン名にはマッチしません。例えば、`https://www.example.com/myapp/` へのリクエストでは、URLconfは `myapp/` を探します。また、`https://www.example.com/myapp/?page=3` へのリクエストでも、URLconfは同様に `myapp/` を探します。

### `view`

`view` 引数は、ビュー関数、またはクラスベースビューの場合は [`as_view()`](/ja/5.2/ref/class-based-views/base/#django.views.generic.base.View.as_view) の結果です。また、`view` 引数には、[`django.urls.include()`](#django.urls.include) を指定することもできます。

Djangoが一致するパターンを見つけると、指定されたビュー関数を呼び出し、最初の引数として [`HttpRequest`](/ja/5.2/ref/request-response/#django.http.HttpRequest) オブジェクトを渡し、ルートから「キャプチャされた」値をキーワード引数として渡します。

### `kwargs`

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

### `name`

URL に名前付けをしておけば Django のどこからでも明確に参照でき、とくにテンプレートの中で有効です。この便利な機能のおかげで、プロジェクトのURLにグローバルな変更を加える場合にも1つのファイルを変更するだけで済むようになります。

`name` 引数が有用な理由については、[URL パターンの命名](/ja/5.2/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.2/ref/utils/#django.utils.translation.gettext_lazy) ( [URL パターンを翻訳する](/ja/5.2/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.2/ref/request-response/#django.http.HttpRequest.path_info) に対してマッチングされます。

`view` 、 `kwargs` 、そして `name` 引数は [`path()`](#django.urls.path) におけるものと同じです。

## `include()`

#### `include(module, namespace=None)`

#### `include(pattern_list)`

#### `include((pattern_list, app_namespace), namespace=None)`

この場所に "含める" べき他のURLconfモジュールへのフルPythonインポートパスを取る関数です。オプションで、エントリが含まれる [application namespace](/ja/5.2/topics/http/urls/#term-application-namespace) と [instance namespace](/ja/5.2/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.2/topics/http/urls/#including-other-urlconfs) および [URLの名前空間とインクルードされた URLconfs](/ja/5.2/topics/http/urls/#namespaces-and-include) を参照してください。

## `register_converter()`

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

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

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

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

## `handler403`

#### `handler403`

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

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

## `handler404`

#### `handler404`

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

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

## `handler500`

#### `handler500`

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

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