検索
ホームページバックエンド開発Python チュートリアルPython の Django フレームワークについての深い理解

この記事では主に Django フレームワークを実装するための Python コードを紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターをフォローして一緒に見てみましょう

1. URLconf

ユーザーがブラウザーから URL にアクセスして Web サイトをリクエストすると、URL を通じて対応する関数が見つかり、実行されます。Django の URL はフォルダー

1、configuration

(1)、test1/settings.py 内のプロジェクトと同じ名前のファイル Configuration ファイル

settings.py は、デフォルトで ROOT_URLCONF を介して URL 構成を指定しています。 test1 .py ファイルの下の URL:


(2)、test1/urls.py の設定項目は次のとおりです:


注:

test1/ で包含設定を実行します。 urls.py を作成し、それぞれのアプリケーションで使用します。 対応する urls.py を作成し、各アプリケーションの urls.py ファイルに特定の構成を作成します。

urlpartterns リストを定義し、url() オブジェクトを保存します。このリストの名前は固定です。

2. URL 定義

url() オブジェクトの構文は django.conf.urls パッケージで定義されており、2 つの構文構造で構成されます

(1): 同じ名前のフォルダー内の URL が含まれます。プロジェクトの py には他のアプリケーションの urls.py が含まれています

カスタマイズしたアプリケーションで urls.py ファイルを作成して url() を定義し、カスタマイズした urls.py を同じ名前のフォルダー内の urls.py に導入します。この目的は、データがより明確で保守しやすいように、アプリケーション内で urls.py を構成することです。

booktest/urls.pyの構文をtest1/urls.pyに導入します

url(r'^',include('应用名称.urls')),
# 此处的urls指的是各自应用(booktest)中urls.py文件的名称,如果是urls.py,即为urls

(2)、構文2:定義、URLとビュー関数の対応関係を指定します

それぞれのアプリケーション内でurls.pyを作成し、指定しますリクエストアドレス ビューとの対応関係、形式は以下の通り:

url(正则,'视图函数名称')

例:

booktest/urls.py にホームページの URL を作成:

from django.conf.urls import url
from booktest import views
urlpatterns=[
    url(r'^$',views.index),
]

注: 通常の引数では r を使用することをお勧めします。これは、文字列がエスケープされないことを意味するため、正規表現を使用するときに記述する必要があるのは 1 つだけです。 バックスラッシュを先頭に追加することはできません。バックスラッシュを末尾に追加してもしなくてもブラウザの URL は同じになるため、末尾にバックスラッシュを追加することをお勧めします。

3. URL に含まれるパラメータ値を取得します

リクエストされた URL は通常の Python 文字列とみなされ、ドメイン名、get、post を含まないリクエスト パラメータが照合されます。例: リクエスト アドレスは次のようになります。

http://localhost:8080/detail/1?a=10

上記のリクエストアドレスでは、url()関数の正規表現に一致する文字列は、detail/

のみです。リクエストされた URL で RESTFUL スタイルを伝えたい パラメータは、url() 関数の正規表現で、つまり () 記号を使用してグループ化する必要があります。位置パラメータとキーワード パラメータに分割されます。

注: 2 つのパラメータ メソッドを混合しないでください。正規表現では 1 つのパラメータ メソッドのみを使用できます。

(1)、位置パラメータ

() 記号を直接使用し、位置パラメータを通じてビューに渡します

url() 関数の正規表現は次のように記述されます:

url(r'^detail(\d+)/$',views.show_books),

ビュー内の対応する関数。 py は次のように記述されます:

def show_books(request, id):    # 此处获取的id为1
    return HttpResponse('show_books')

(2), キーワード パラメータ

キーワード パラメータを使用し、url() 関数の正規表現でグループ化して各グループに名前を付けます

たとえば、アクセスされる URL は次のとおりです: http:// localhost: 8000/delete/1?a=10

url() 関数の正規表現は次のように記述されます:

url(r&#39;^delete(?P<id1>\d+)/$&#39;,views.show_book),

views.py の関数は次のように記述されます:

def show_arg(request,id1):
    return HttpResponse(&#39;show %s&#39;%id1)

:キーワード パラメーターを使用する場合 その場合、views.py 内の対応する関数のパラメーター名は、正規表現内のグループの名前と一致している必要があります。そうでない場合は、エラーが報告されます。

2. ビュー

1. ビューとは

ビューは Python の関数であり、通常、「application/views.py」ファイル (この例では「booktest/views.py」) で定義されます。例。

ビューは、応答として HttpResponse オブジェクトまたはサブオブジェクトを返さなければなりません。応答には、Web ページの HTML コンテンツ、リダイレクト関数、404 エラーなどが考えられます。ビューの最初のパラメーターは HTTPREQUEST オブジェクトである必要があります。他のパラメーターには、キーワード パラメーターまたは位置パラメーター (2 つのうちの 1 つ)

2、組み込みエラー ビュー (1)、組み込みエラー ビュー マップ

も含まれる場合があります。

デバッグ情報の代わりにエラー ビューを表示したい場合は、テスト内の「DEBUG 項目構成情報」を変更する必要があります。 /settings.py」ファイル


(2)、404错误及视图

        将请求地址进行url匹配之后,没有找到匹配的正则表达式,则调用404视图,这个视图会调用404.html模版进行渲染,视图传递变量request_path给模版,表示导致错误的URL。

在templates中创建404.html

<html>
<head>
    <title></title>
</head>
<body>
找不到了
<hr/>
{{request_path}}
</body>
</html>

在浏览器中输入如下网址:

http://localhost:8000/test/

运行效果如下:


(3)、500错误及视图

        在视图中代码运行报错将会发生500错误,调用内置错误视图,使用templates/500.html模版进行渲染。

三、HttpRequest对象

1、HttpRequest对象

        服务器接收到HTTP请求后,会根据报文创建HttpRequest对象,这个对象不需要我们手动创建,直接使用服务器构建好的对象即可。视图函数中的第一个参数必须是HttpRequest对象,该对象类定义在django.http模块中。

2、属性

        path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分。

        method:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'、'POST'。

                在浏览器中给出地址发出请求采用get方式,如超链接。

                

                在浏览器中点击表单的提交按钮发起请求,如果表单的method设置为post则为post请求。

        encoding:一个字符串,表示提交的数据的编码方式。

                如果为None则表示使用浏览器的默认设置,一般为utf-8。

                这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值。

        GET:QueryDict类型对象,类似于字典,包含get请求方式的所有参数。

        POST:QueryDict类型对象,类似于字典,包含post请求方式的所有参数。

        FILES:一个类似于字典的对象,包含所有的上传文件。

        COOKIES:一个标准的Python字典,包含所有的cookie,键和值都为字符串。

        session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django 启用会话的支持时才可用,详细内容见"状态保持"。

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

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

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Python:汎用性の高いプログラミングの力Python:汎用性の高いプログラミングの力Apr 17, 2025 am 12:09 AM

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

1日2時間でPythonを学ぶ:実用的なガイド1日2時間でPythonを学ぶ:実用的なガイドApr 17, 2025 am 12:05 AM

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Python vs. C:開発者の長所と短所Python vs. C:開発者の長所と短所Apr 17, 2025 am 12:04 AM

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Python:時間のコミットメントと学習ペースPython:時間のコミットメントと学習ペースApr 17, 2025 am 12:03 AM

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール