ホームページ  >  記事  >  バックエンド開発  >  Django フレームワークでの URL 設定ガイド

Django フレームワークでの URL 設定ガイド

王林
王林オリジナル
2023-06-17 09:33:103164ブラウズ

Django は強力な Web アプリケーション フレームワークであり、URL 構成は Django フレームワークの非常に重要な部分です。この記事では、URL 構成の基礎知識と、Django フレームワークでの具体的な実装方法と使用シナリオを紹介します。

1. URL 設定の基礎知識

URL は、Uniform Resource Locator (Uniform Resource Locator) の略で、Web 上のリソースを識別するために使用される唯一のアドレスです。通常、プロトコルで構成されます。ドメイン名とパス。

Django フレームワークでは、URL 構成とは、クライアント要求を対応するビュー関数にバインドするプロセスを指します。クライアントがリクエストを送信すると、Django は URL 設定で定義されたルールに基づいて対応するビュー関数を見つけ、リクエストをこのビュー関数に渡して処理します。したがって、URL 設定の役割は、さまざまなリクエスト パスのさまざまなビュー機能に分散することです。

2. URL 設定の実装方法

Django フレームワークでは、URL 設定は関数ベースのビューとクラスベースのビューの 2 つの方法で実装できます。

  1. 関数ベースのビュー

関数ベースのビューは、リクエスト パスを対応する関数に直接バインドすることを指します。このバインド方法は非常に単純で、コード実装は次のようになります。

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
]

上記のコード実装では、Django フレームワークにパス モジュールをインポートすることで新しい urlpatterns 変数が定義されています。この変数はリストであり、各要素はパスとビュー関数です。 。たとえば、最初の要素は空のパス (つまり、ドメイン名の後にパス情報がない場合) とビュー関数インデックスのバインドを表し、2 番目の要素は /about/ パスとビュー関数 about のバインドを表します。 3 番目の要素は、/contact/ パスがビュー関数 contact にバインドされていることを示します。

  1. クラスベース ビュー

クラスベース ビューは、リクエスト パスを対応するクラス メソッドに直接バインドすることを指します。このバインディング メソッドは、関数ベースのビューと比較されます。ビューはより柔軟で、展開が簡単です。コード実装は次のとおりです:

from django.urls import path
from .views import IndexView, AboutView, ContactView

urlpatterns = [
    path('', IndexView.as_view(), name='index'),
    path('about/', AboutView.as_view(), name='about'),
    path('contact/', ContactView.as_view(), name='contact'),
]

上記のコード実装では、新しい urlpatterns 変数は、ビュー モジュールの IndexView、AboutView、および ContactView クラスをインポートすることによって定義されています。 , ここで、各要素はすべてパスとクラス ビューの間の対応関係です。たとえば、最初の要素は空のパス (つまり、ドメイン名の後にパス情報がない場合) を IndexView クラス ビューにバインドすることを表し、2 番目の要素は /about/ パスを AboutView クラス ビューにバインドすることを表します。 3 番目の要素は、/contact/ パスが ContactView クラス ビューにバインドされていることを示します。

3. URL 設定の使用シナリオ

URL 設定は通常、次の 2 つの問題を解決するために使用されます:

  1. 配布リクエスト

クライアントがリクエストを送信すると、Django フレームワークは解析のためにリクエストを URL 設定に渡し、その後、リクエストを対応するビュー関数またはクラス メソッドに転送して処理します。 URL 設定はルーターのようなもので、クライアント要求を正しいハンドラー関数にルーティングする役割を果たします。

  1. URL の生成

リクエストの分散に加えて、URL 構成は URL の生成にもよく使用されます。 Django フレームワークでは URL 名を通じて特定の URL パスを参照できるため、この URL 名は対応する URL パスに自動的に変換されます。例:

<a href="{% url 'about' %}">关于我们</a>

上記のコードでは、テンプレート タグ {% url 'about' %} を通じて 'about' という名前の URL パスを参照します。最終的な効果は、/about の URL パスを生成することです。 /。

4. URL 構成の高度なアプリケーション

Django フレームワークでは、基本的なリクエストの配布と URL 生成に使用されるだけでなく、URL 構成は次の高度なシナリオにも適用できます。

    ##URL パラメータの受け渡し
URL 設定では、3346a694ac8a048610f49bd53cd0ec6c を使用して URL パスの変数タイプと変数名を定義できます。例:

from django.urls import path
from .views import post_detail

urlpatterns = [
    path('post/<int:pk>/', post_detail, name='post_detail'),
]

上記のコードでは、35fd11114e6d69520106198971ac7ac0 を使用して post_detail パスの整数パラメーター pk を定義します。このパラメータはパスの末尾までコロンで区切られ、ビュー関数のパラメータとして渡されます。

    URL 文字マッチング
URL 設定では、正規表現を使用してリクエスト パスの特定の文字と一致させることができます。この方法は非常に柔軟です。例:

from django.urls import re_path
from .views import search

urlpatterns = [
    re_path(r'^search/(?P<keyword>w+)/$', search, name='search'),
]

上記のコードでは、 re_path メソッドを使用してパス一致ルールを定義します。このルールにはキーワード パラメータが含まれており、文字、数字、アンダースコアを含むパス文字と一致します。

    URL 名前空間
Django フレームワークでは、URL 名前空間は、アプリケーション内の可視性を高めるために 1 つ以上のアプリケーションの URL をグループ化することを指します。例:

from django.urls import path, include
from myapp1.views import index as myapp1_index
from myapp2.views import index as myapp2_index

myapp1_patterns = [
    path('', myapp1_index, name='index'),
]

myapp2_patterns = [
    path('', myapp2_index, name='index'),
]

urlpatterns = [
    path('myapp1/', include((myapp1_patterns, 'myapp1'), namespace='myapp1')),
    path('myapp2/', include((myapp2_patterns, 'myapp2'), namespace='myapp2')),
]

上記のコードでは、include 関数を使用して各アプリケーションの URL 構成を Django フレームワークに導入し、各アプリケーションの URL 構成の名前空間を設定します。これにより、異なるアプリケーションの URL 間に競合が発生しないことが保証され、テンプレートでの URL 参照も容易になります。

概要

この記事では、Django フレームワークにおける URL 構成の基礎知識、実装方法、高度な応用例を紹介します。読者が Django フレームワークにおける URL 構成をよりよく理解し、より簡単に理解できるようにするのに役立つことを願っています。 URL設定を実際の開発に柔軟に適用できます。

以上がDjango フレームワークでの URL 設定ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。