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 つの方法で実装できます。
関数ベースのビューは、リクエスト パスを対応する関数に直接バインドすることを指します。このバインド方法は非常に単純で、コード実装は次のようになります。
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 にバインドされていることを示します。
クラスベース ビューは、リクエスト パスを対応するクラス メソッドに直接バインドすることを指します。このバインディング メソッドは、関数ベースのビューと比較されます。ビューはより柔軟で、展開が簡単です。コード実装は次のとおりです:
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 つの問題を解決するために使用されます:
クライアントがリクエストを送信すると、Django フレームワークは解析のためにリクエストを URL 設定に渡し、その後、リクエストを対応するビュー関数またはクラス メソッドに転送して処理します。 URL 設定はルーターのようなもので、クライアント要求を正しいハンドラー関数にルーティングする役割を果たします。
リクエストの分散に加えて、URL 構成は URL の生成にもよく使用されます。 Django フレームワークでは URL 名を通じて特定の URL パスを参照できるため、この URL 名は対応する URL パスに自動的に変換されます。例:
<a href="{% url 'about' %}">关于我们</a>
上記のコードでは、テンプレート タグ {% url 'about' %} を通じて 'about' という名前の URL パスを参照します。最終的な効果は、/about の URL パスを生成することです。 /。
4. URL 構成の高度なアプリケーション
Django フレームワークでは、基本的なリクエストの配布と URL 生成に使用されるだけでなく、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 を定義します。このパラメータはパスの末尾までコロンで区切られ、ビュー関数のパラメータとして渡されます。
from django.urls import re_path from .views import search urlpatterns = [ re_path(r'^search/(?P<keyword>w+)/$', search, name='search'), ]上記のコードでは、 re_path メソッドを使用してパス一致ルールを定義します。このルールにはキーワード パラメータが含まれており、文字、数字、アンダースコアを含むパス文字と一致します。
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 サイトの他の関連記事を参照してください。