04_Webフレームワーク Django 1

Web フレームワーク Django 1

学習目標と学習内容

1. Django の役割を説明できる

2. Django を使用してアプリケーションを作成する機能

3. GET および POST リクエスト メソッドを使用してパラメータを転送する機能

4. Django の関数メソッドを使用してビューを定義する機能

5. Django 設定ファイルを変更する機能

6. 基本的に Django のルーティング定義を使用できること

1. Django の概要

1. ジャンゴとは何ですか?

Web フレームワークとは、未解決の問題を解決するために設計された制限的なアーキテクチャを指します。

整理された多数のクラス ライブラリ ファイル

これは Python で書かれており、MTV モデルを使用します。

Django官网:期限のある完璧主義者のための Web フレームワーク |ジャンゴ

フレームワークの利点:

  1. 急速な発展

  2. シンプルで使いやすい

その他の一般的な Web フレームワーク: flask web.py Tornado

2. 応用シナリオ

Web アプリケーションを迅速に構築し、データ インターフェイス (API) を提供します。

CMDB

2. アプリケーションのインストールと展開

準備:

1. Python環境python3以降をインストールする

2.開発ツールIDE Pycharmをインストールします

1.Djangoをインストールする

1.1. バージョンの選択

LTS: ロングバージョンサポートですが、正式なサポート期間が長いため、一般的には LTS バージョンを選択します。

1.2. インストールとプロジェクトの作成

pip install django==1.11.18

アプリケーションを作成するディレクトリにジャンプしますので、状況に応じてディレクトリを選択してください。

django-admin startproject mydjango

2. ディレクトリ構造

manage.py は Django プロジェクトのツールで、これを使用して Django シェルとデータベースを呼び出すことができます。

settings.py には、データベース情報、デバッグ フラグ、その他の作業変数など、プロジェクトのデフォルト設定が含まれています。

urls.py は、URL パターンをアプリケーションにマッピングする役割を果たします。

3. 新しいアプリケーションを作成する

manage.py ファイルを使用してアプリケーションを作成します。

python manage.py スタートアップ ブログ

4. Django プロジェクトを開始します

python manage.py 実行サーバー

5. PyCharm を使用してプロジェクトを開きます

3. Djangoの利用原理

1.MVTモデル

モデル: ビジネス オブジェクトとデータベース (ORM) の間のオブジェクトの対話を担当します。

プロジェクトにデータサポートを提供する

テンプレート: ユーザーにページを表示する方法を担当します。

静的ページ (html+css+js) テンプレート タグ (ビジネス ロジック処理のために Python コードに解析されます)

ビュー: ビジネス ロジックを担当し、必要に応じてモデルとテンプレートを呼び出します。

スケジュール設定

2. リクエストの流れ

4. Django のリクエストとレスポンス

1. 迅速な導入

①ルーティングURLを定義する.py

②ビュー関数views.pyを定義する

・・・・・・

③モデルデータ呼び出しによるテーブル作成

④テンプレート読み込みテンプレート(html....)をインクルード

1.1. ルートの定義

1.2. ビューの作成

1.3. ブラウザアクセス

この時点で、ページリクエストが完了します。

2. お願い

リクエストとレスポンスのオブジェクト |ジャンゴ 文档 |ジャンゴ

クライアントはサーバーが伝送する情報を要求します

属性:

HttpRequest.scheme: リクエストメソッド、つまり http または https

HttpRequest.body: リクエストの本文。文字列が返されます。

HttpRequest.path: リクエストのパス。ここでのパスは相対パスを指します。これは、バックグラウンド ページへのログイン リクエストを意味します:http://127.0 .0.1:8000/ 管理者のパスは/adminです。

HttpRequest.method: リクエストメソッド POST/GET

HttpRequest.encoding: リクエストによって送信されたデータのエンコード方式

HttpRequest.GET: 取得フォームまたは URL で送信されたデータを取得します

HttpRequest.POST: 投稿フォームまたは URL で送信されたデータを取得します

HttpRequest.META: 取得されるのは標準の Python 辞書です。すべてのHTTPリクエスト情報が含まれています

方法:

HttpRequest.get_host(): 要求されたアドレス

HttpRequest.get_port(): 要求されたポート

HttpRequest.get_full_path(): 取得パラメータを含むリクエストのフルパス

GETメソッドで渡された値を受け取る

3. 対応

サーバーからクライアントに返される情報

属性:

HttpResponse.content: 応答コンテンツ

HttpResponse.status_code: レスポンスステータスコード

HttpResponse.content_type: 応答タイプ (デフォルト: text/html)

4. GETリクエストパラメータの送受信

取得リクエストはクリア テキストで送信され、情報は URL に追加されます。

HttpRequest オブジェクトの GET 属性は、同じキーの複数の値を処理するために使用されるカスタム辞書のようなクラスである django.http.QueryDict のインスタンスです。このクラスが必要になるのは、複数の値を同じキーに渡す特定の HTML フォーム要素からです。

request.GET の QueryDict は、通常のリクエスト/レスポンス サイクル中は不変です。

例: URL で送信されたパラメータを GET で受信し、ページに出力する

①パラメータを受け取る

②レスポンスでパラメータを返す

1. ルーティングを定義する

2. ビュー関数を定義する

③パラメータの結合を行いページ表示に戻ります

5. POSTリクエストパラメータの送受信

POST は Get リクエストと比較して安全であり、すべての情報がフォームに追加されます。

HttpRequest オブジェクトの POST 属性は、同じキーの複数の値を処理するために使用されるカスタム辞書のようなクラスである django.http.QueryDict のインスタンスです。このクラスが必要になるのは、複数の値を同じキーに渡す特定の HTML フォーム要素からです。

request.POST の QueryDict は、通常の要求/応答サイクル中は不変です。

例: postman (インターフェイス デバッグ ツール) を介した POST リクエストの送信をシミュレートし、パラメーターを送信し、パラメーターをページに出力します。

①郵便配達員がデータを送る

ヒント:403 CSRF アクセスは禁止されています

解決策 1: CSRF 制限の終了を無効にする

②返却データ情報

POST リクエストを送信する一般的な方法:

①html形式

②アヤックス

③curl postman(開発APIのデバッグ)

④プログラミング言語の一部の操作メソッドとクラス phpcurllibcurlpythonrequestsulib

6.QueryDictオブジェクト

QueryDictの共通操作メソッド:

QueryDict.get(キー)

QueryDict.getlist(キー)

QueryDict.items()

QueryDict.lists()

5. ビューとテンプレート

1. 機能ビュー

関数の形式で定義されたビューは関数ビューと呼ばれ、関数ビューは理解しやすいです。ただし、ビューに対応するパスが複数の異なる HTTP リクエスト メソッドをサポートしている場合、関数内に異なるビジネス ロジックを記述する必要がありますが、コードの可読性と再利用性は良くありません (クラス ビューは後で使用されます)。

関数ビューの定義は、関数ビューがパラメーター要求を受信する必要があることを除いて、関数の定義とまったく同じです。

2. テンプレートファイル

①ルーティングを定義する

②ファンクションビューの定義

これで出力テキストが表示されますが、静的ページを表示して返すことが要件となります。テンプレートのサポートを使用する必要があります。

③テンプレートフォルダと静的リソースフォルダstaticを作成

④静的ページと静的リソースを対応するディレクトリに配置します。

⑤setting.pyで静的リソースの設定を行う

⑥ファンクションビューでページをロード

render メソッドは、loading template メソッドを呼び出します。

render(リクエスト,テンプレート名)

⑦ ページ上の静的リソースのアクセスアドレスを変更します。

css js img 画像パス プラス /static

6. ルーティング

Django のルーティングはカスタマイズ可能で、使い方が豊富です。ルーティングを適切に構成すると、Web アプリケーションが使いやすくなるという利点があり、また、特定のセキュリティの役割を果たすこともできます。

1. URL マッチング ルール

①上から順にマッチングし、マッチングに成功した場合はマッチングを継続しません。

②マッチングに失敗した場合は、マッチングが成功するまでマッチングを続けます。

③該当するルールが存在しない場合はエラーとなります。

2. 一般的なマッチング方法

2.1. 完全一致

2.2. 通常のマッチング

2.3. グループマッチング

グループ化された正規一致 (?p<タグ名>)

ラベル名は後で受け取るパラメータ名です。

3. URLの逆解析

フロントエンド ページのフォーム送信アドレスには完全な URL アドレスを入力する必要がありますが、これは使用やその後の変更に役立ちません。

これは、URL エイリアスを使用して実行できます。

①オリジナルのフロントエンドページアドレス

②ルートURL定義エイリアス

③テンプレートを呼び出します

分析効果を確認する

4. URLモジュールが含まれています

実際のビジネス開発では、多数のアプリケーションモジュールが存在します。すべての URL ルートを同じファイルに定義すると管理が困難になるため、すべての URL を別のファイルに定義して管理できます。

①新規アプリを作成する

コマンド > python manage.py startapp ショップ

②urls.pyにインクルードをインポートし、アプリケーションフォルダにURL定義を導入

③対応するアプリケーションフォルダーにurls.pyファイルを作成します。

④見る

###手術:

1. ホスト リスト テンプレートを django プロジェクトにデプロイして使用します

2. ユーザーログイン実現の原理

ケース: 単純なログイン原則の実装

①ルーティングを定義する

urls.py定義の書き方

②関数ビュー読み込みテンプレートを書く

view.pyで定義されています

③テンプレートページの作成

テンプレートフォルダー内のlogin.htmlファイル

④パラメータを加工し検証・判定を行う

上で書いた関数ビューを変更します

おすすめ

転載: blog.csdn.net/qq_57747969/article/details/135047908