Django フレームワークは、開発者がアプリケーションの URL 構造を簡単に管理できる柔軟な URL 構成システムを使用する、高度にカスタマイズ可能な Web 開発フレームワークです。前回の記事では、Django の基本的な URL 構成テクニックについて説明しましたが、この記事では、読者が Django の URL 構成システムをよりよく理解して使用できるように、より高度なテクニックをさらに紹介します。
Django では、URL 構成で正規表現を使用できます。これは、複雑な URL 構造を扱う場合に特に便利です。たとえば、次の URL と一致させたい場合:
http://example.com/2008/12/25/my-post
を使用できます。次の URL 構成:
url(r'^(?P<year>d{4})/(?P<month>d{2})/(?P<day>d{2})/(?P<slug>[-w]+)/$', 'blog.views.post_detail'),
このうち、正規表現 ^(?P4620f01c9fab72e23a9b679732106cc4d{4})/(?Pe43ddfe88b0c33e4d0d4a6906a4e933cd{2})/(?Pa5adbdd9cd1ac13c52904264d2718cfbd{2 })/(?P198c97e7ae6ff9dea64e00c681816625[-w] )/$
は、年、月、日、記事タイトルで構成される URL と一致します。 (?P8a11bc632ea32a57b3e3693c7987c420pattern)
構文を使用すると、一致する各グループを定義し、それをキーワード引数として view 関数に渡すことができます。
URL マッチングに正規表現を使用することに加えて、Django の組み込みフォーム ツールを使用することもできます。これにより、フォーム データを処理して、それをビュー機能。フォーム データを view 関数に渡すには、次の URL 構成を使用する必要があります:
url(r'^contact/$', 'contact.views.contact'),
view 関数では、Django フォーム ツールを使用してパラメータを処理できます:
from django.shortcuts import render from contact.forms import ContactForm def contact(request): if request.method == 'POST': form = ContactForm(request.POST) if form.is_valid(): # 处理表单数据 pass else: form = ContactForm() return render(request, 'contact.html', {'form': form})
フォームが送信された後、request.POST
パラメーターを使用してフォーム データにアクセスします。フォーム データの検証に合格すると、必要な操作を実行できます。
場合によっては、ユーザーを別の URL にリダイレクトする必要があります。たとえば、ユーザーがフォームを正常に送信した場合、ユーザーを別の URL にリダイレクトできます。 Django は、次の方法で使用できるクイック リダイレクト関数を提供します。
from django.shortcuts import redirect def some_view(request): # 如果用户未登录,将其重定向到登录页面 if not request.user.is_authenticated: return redirect('login')
上記のビュー関数では、ユーザーがログインしているかどうかを確認します。ユーザーがログインしていない場合は、ログイン ページにリダイレクトされます。リダイレクト関数のパラメータには、URL 文字列または定義された名前付き URL を指定できます。この場合、URL 文字列を URL 名に置き換えることができます。
Django には、アプリケーションで使用されるすべての静的ファイルを保存および提供するために使用できる組み込みの静的ファイル プロセッサも提供されています。これを行うには、settings.py
ファイルで静的ファイル ディレクトリを指定する必要があります:
STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / "static", "/var/www/static/", ]
ここでは 2 つの静的ファイル ディレクトリを指定します: BASE_DIR / "static"
および /var/www/static/
。設定されたすべてのディレクトリ内の静的ファイルには、STATIC_URL
を通じてアクセスできます。
URL 構成を定義するときに名前を付けることができるため、コードの可読性、保守性、使いやすさが向上します。たとえば、リスト ページを処理するビュー関数を定義する場合、URL 構成は次のとおりです:
url(r'^articles/$', 'myapp.views.article_list'),
これで、名前を article_list
:
url(r'^articles/$', 'myapp.views.article_list', name='article_list'),## にすることができます。 # ビュー内 関数では、名前付き URL を使用して URL を生成できます。
from django.urls import reverse def some_view(request): url = reverse('article_list') # 执行其他操作上記のコードでは、
reverse 関数を使用して、名前付き URL に対応する URL を生成します。 URL。この関数は、生成された URL 文字列を返します。
以上がDjango フレームワークでの URL 構成スキル (パート 2)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。