46日目Django_wsgireiモジュールとDjangoのインストール

Webフレームワーク

Webフレームワーク(Webフレームワーク)は、動的なWebサイト、Webアプリケーション、およびWebサービスの開発をサポートするために使用される開発フレームワークです。これらのWebフレームワークのほとんどは、Webサイトを開発および展開するための一連のメソッドを提供し、Web動作の一般的な方法も提供します。Webフレームワークは多くの機能を実現しており、開発者はフレームワークが提供するメソッドを使用して独自のビジネスロジックを完成させることにより、Webアプリケーションをすばやく開発できます。ブラウザとサーバーは、HTTPプロトコルに基づいて通信します。また、Webフレームワークは数十行を超えるコードに基づいて拡張されていると言え、開発の効率を大幅に向上させるシンプルで便利な方法が数多くあります。

wsgirefモジュール

最も簡単なWebアプリケーションは、最初にHTMLファイルを保存し、既製のHTTPサーバーソフトウェアを使用し、ユーザー要求を受信し、ファイルからHTMLを読み取り、戻ることです。

HTMLを動的に生成する場合は、上記の手順を自分で実装する必要があります。ただし、HTTPリクエストの受け入れ、HTTPリクエストの解析、HTTPレスポンスの送信はすべて大変な作業です。これらの低レベルのコードを自分で記述し、動的HTMLの記述を開始していない場合は、HTTP仕様を読むために数か月を費やす必要があります。

正しいアプローチは、基礎となるコードが専用サーバーソフトウェアによって実装され、Pythonを使用してHTMLドキュメントの生成に集中することです。TCP接続、HTTPの元の要求および応答形式にさらされることを望まないため、このようなサーバーソフトウェアを実装するための統一されたインターフェイスプロトコルが必要です。PythonでのWebサービスの作成に集中しましょう。このインターフェースはWSGI:Web Server Gateway Interfaceです。wsgirefモジュールは、pythonがwsgiプロトコルに基づいて開発したサービスモジュールです。

基本的に、このファイルはWebフレームワークと呼ぶことができます。

wsgiref.simple_server インポートはmake_server 

DEF :wsg_server(環境、start_responseを)
     HTTPプロトコル解析データに従って:ENVIRONの
    組み立てhttpプロトコルデータに従って:start_responseを 
    start_responseをを(' 200 OKです'、[(' クッカー'' 123 131 ' )])
    パス = environ.get(' PATH_INFO ' if path == ' / index ' 
        with open(' index.html '' r ')as f:
            data = f.read()
     elif path == ' / socket ' 
        with open(' socket.html '' r ' )as f:
            data = f.read()
     else 
        with open(' 。 /pic/jingdon.ico '' rb ' )as f:
            data = f.read()
         return [data]
     return [data.encode(' utf-8 ' )]

パッケージソケット 
H5 =はmake_server(' 127.0.0.1 '、8080 、wsg_server) 

ユーザ接続を待つ:コネティカット、ADDR = sock.accept() 
h5.serve_forever()

 

Djangoテンプレートのインストール

MVCおよびMTVモデル

MVC
Webサーバー開発の分野でよく知られているMVCパターンいわゆるMVCは、Webアプリケーションをモデル(M)、コントローラー(C)、ビュー(V)の3つのレイヤーに分割するものです。一緒に接続され、モデルはビジネスオブジェクトとデータベース(ORM)のマッピングを担当し、ビューはユーザー(ページ)との対話を担当し、コントローラーはユーザーの入力を受け入れ、モデルとビューを呼び出してユーザーの要求を完了します。概略図は次のとおりです。

MTV
DjangoのMTVモデルは基本的にMVCと同じですが、コンポーネント間の疎結合を維持することも目的としていますが、定義は少し異なります。DjangoのMTVは次の値です。

  1. Mはモデルを表します。ビジネスオブジェクトとデータベースの関係マッピング(ORM)を担当します。
  2. Tはテンプレート(テンプレート)の略です。ユーザー(html)にページを表示する方法を担当します。
  3. VはView(View)の略です。ビジネスロジックを担当し、必要に応じてモデルとテンプレートを呼び出します。
    上記の3つのレイヤーに加えて、URLディストリビューターも必要です。その機能は、URLのページリクエストをさまざまなビューに分散して処理することです。ビューは、対応するモデルとテンプレートを呼び出します。MTVの応答モードは次のとおりです。

通常、ユーザーはブラウザーを介してサーバーへのリクエストを開始します。このリクエストはビュー関数に返されます(データ呼び出しが含まれていない場合、ビュー関数はユーザーにWebページであるテンプレートを返します。モデルを呼び出すと、モデルはデータベースでデータを検索し、ステップごとに戻ります。view関数は、返されたデータをテンプレートの空白に入力し、最後にWebページをユーザーに返します。

Djangoダウンロードと基本的なコマンド

1. Djangoをダウンロードします。pip install django

2. djangoプロジェクトを作成します:django-admin startproject mysite

Mysiteプロジェクトは現在のディレクトリの下に生成されます。ディレクトリ構造は次のとおりです。

manage.py ----- Djangoプロジェクトのツール。djangoシェルとデータベースを呼び出すことができます。
settings.py ----データベース情報、デバッグフラグ、その他の作業変数など、プロジェクトのデフォルト設定が含まれています。
urls.py -----アプリケーションへのURLパターンのマッピングを担当します。

3. mysiteディレクトリにアプリケーションを作成します

python manage.py startapp blog

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

python manage.py runserver 8080

これでジャンゴが始まりました!アクセスすると、http//127.0.0.18080 /が表示されます。

 

Djangoに基づく簡単な例

URLコントローラ

django.contribのインポート管理者
 から django.urlsのインポート経路

から APP1 インポートビュー
urlpatterns = [ 
    パス(' 管理/ ' 、admin.site.urls)、
    パス(' ログイン/ ' 、views.login)
]

見る

from django.shortcuts import render 

ここでビューを作成します。
import datetime 


def login(request):
    now = datetime.datetime.now()
    ctime = now.strftime(" %Y-%m%d%X " return render(request、" login.html "、{ " data ":ctime})

テンプレート

<!DOCTYPE html> 
<html lang = " en " > 
<script src = " /static/jquery-3.4.1.js " > </ script>
 <script src = "/ static / jquery-3.4.1.js "> </ script> <link rel =" stylesheet "href =" / static / app1_css / login.css "> 
<head> 
    <meta charset = " UTF-8 " > 
    <title> login </ title> 
</ head> 
<style type = " text / css " > 
    h3 { 
        color:dodgerblue; 
    }
 </ style>" text " > 
    密码 <input type = " password " > 

</ body> 
<script> 
    $(" h3 " ).click(function(){ 
        $(this).css(" color "" red " 
    })
 </ script> 
</ html>

設定ファイルsettings.py

STATIC_URL = ' / static / ' 

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR、' static ' 
]

 

おすすめ

転載: www.cnblogs.com/ysging/p/12670655.html