ホームページ  >  記事  >  バックエンド開発  >  Djangoの「URLマッピングルール」と「サーバー応答順序」

Djangoの「URLマッピングルール」と「サーバー応答順序」

高洛峰
高洛峰オリジナル
2016-10-17 13:55:251114ブラウズ

1. Django 検索パス

import ステートメントを使用するときに、Python が検索するシステム ディレクトリのリスト。

表示方法:

Import sys

Print sys.path

通常、Python 検索パスの設定を気にする必要はありません。Python と Django がバックグラウンドで自動的に処理します。

2. URL マッチングモード

基本構造:

'^マッチングする必要がある URL 文字列$'

PS: 実際、最終的な完全な URL 文字列は http://root パス: ポート番号/url です。一致する必要がある文字列

システムによって自動的に追加される部分は 'http://root パス: ポート番号/'

例: URL 一致パターン: '^latest_books/$'

最終的な完全な URL 文字列: 'http://127.0 .0.1:8000/latest_books/'

1) ^: 「部分文字列ヘッダー」と一致します。

例:

'^latest_books/'

'http://127.0.0.1:8000/latest_books/',

'http://127.0.0.1:8000/latest_books/test1/',

' http://127.0.0.1:8000/latest_books/test2/',

'http://127.0.0.1:8000/latest_books/test1/aaa/'

が一致します。

2)$: 「部分文字列の末尾」と一致します。

例:

'latest_books/$'

'http://127.0.0.1:8000/latest_books/'、

'http://127.0.0.1:8000/updir_1/latest_books/'、

' http://127.0.0.1:8000/updir_2/latest_books/'

が一致します。

3) 部分文字列の末尾に '/' が含まれているかどうか

デフォルトで追加する必要があります (Django 開発者の基本的な習慣) 追加しない場合、次の状況が発生します:

from django.conf.urls import Patterns, url, include

urlpatterns = pattern('',

(r'^latest_books$', 'django_web_app.views.latest_books'),

)

Djangoの「URLマッピングルール」と「サーバー応答順序」

'を含めたくない場合は、 /' 部分文字列の末尾にある場合は、.py に設定を追加します: APPEND_SLASH=False

ただし、それが機能するには CommonMiddleware がインストールされている必要があります。

4 関数:

a)urls.py

from django.conf.urls import pattern, url, include

Djangoの「URLマッピングルール」と「サーバー応答順序」urlpatterns = pattern('',

(r'^$','django_web_app.views.home_ページ')" 、

,,,,,,,,,,,,,,, _response('home_page.html')

c)home_page.html

my home page

This is home page , welcome!

実行結果:

添付ファイル:正規表現の基礎

3. 実行URL リクエストに対するサーバー応答の順序

1) プロジェクト構造

django_web

__init__.py

Djangoの「URLマッピングルール」と「サーバー応答順序」 settings.py

urls .py

wsgi.py

django_ web_app

__init__.py

管理者。 py

models.py

tests.py

views.py

templates

home_page.html

latest_books.html

manage.py

2)実行シーケンス

a) サーバーを起動します - Python 管理.py runserver

主に以下を含むsetting.pyファイルの設定を取得します:

URLマッピング関係ファイルパス:

ROOT_URLCONF = ' django_web.urls'

ページファイルテンプレートパス:

TEMPLATE_DIRS = (

os .path.join(BASE_DIR, 'テンプレート'),

)

データベース構成:

DATABASES = {

'default': {

 ̄ 'ENGINE': 'django.db.backends.mysql',

'NAME': 'django_db',

'USER': 'root ',

'PASSWORD': 'feng',

'HOST': '127.0.0.1',

'PORT': '3306',

}

}

b) 応答シーケンス

最初のステップ1: ブラウザがリクエストを送信します

http://127.0.0.1:8000/latest_books/

ステップ 2: サーバーは urls.py 内のリクエストされた URL と照合し、対応する「表示関数」を見つけます

ステップ 3: 呼び出し対応する「ビュー関数」を使用して HttpResponse オブジェクトを返します

ステップ 4: Django は HttpResponse オブジェクトを適切な HTTP 応答に変換し、表示用にページに返します


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