ホームページ >バックエンド開発 >Python チュートリアル >Django の基本チュートリアルの概要

Django の基本チュートリアルの概要

WBOY
WBOYオリジナル
2017-06-28 12:00:241274ブラウズ

すべての Web アプリケーションは本質的にソケット サーバーであり、ユーザーのブラウザは実際にはソケット クライアントです。

簡単な Web プログラム:

#!/usr/bin/env python
#coding:utf-8
 
import socket
 
def handle_request(client):
    buf = client.recv(1024)
    client.send("HTTP/1.1 200 OK\r\n\r\n")
    client.send("Hello, Seven")
 
def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost',8000))
    sock.listen(5)
 
    while True:
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()
 
if __name__ == '__main__':
    main()

Python Web プログラムは、一般にサーバー プログラムとアプリケーション プログラムに分けられます。サーバー プログラムは、ソケット サーバーをカプセル化し、要求が来たときに要求されたさまざまなデータを分類する責任があります。アプリケーションは特定の論理処理を担当します。アプリケーションの開発を容易にするために、多くの Web フレームワークが登場しました。たとえば、Django、Flask、web.py などです。

フレームワークが異なれば開発方法も異なりますが、いずれにしても、開発されたアプリケーションはサーバープログラムと連携してユーザーにサービスを提供する必要があります。このように、サーバー プログラムは、フレームワークごとに異なるサポートを提供する必要があります。このような混沌とした状況はサーバーにとってもフレームワークにとっても良くありません。サーバーの場合、さまざまなフレームワークをサポートする必要があり、フレームワークの場合、開発されたアプリケーションはそれをサポートするサーバーのみを使用できます。現時点では、標準化が特に重要になります。サーバー プログラムがその標準をサポートし、フレームワークもこの標準をサポートしている限り、標準を設定できます。それらは一緒に使用できます。標準が決定されると、両当事者はそれを個別に実装します。このようにして、サーバーは標準をサポートするより多くのフレームワークをサポートでき、フレームワークは標準をサポートするより多くのサーバーを使用できます。

WSGI

Webサーバーゲートウェイインターフェースとは、WebアプリとWebサーバー間の分離を実現するために、Pythonで記述されたWebアプリとWebサーバー間のインターフェース形式を定義する仕様です。

Python標準ライブラリによって提供される独立したwsgiサーバーはwsgirefと呼ばれます

#!/usr/bin/env python
#coding:utf-8
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return &#39;<h1>Hello, web!</h1>&#39;
if __name__ == &#39;__main__&#39;:
    httpd = make_server(&#39;&#39;, 8000, RunServer)
    print "Serving HTTP on port 8000..."
    httpd.serve_forever()

カスタムWebフレームワーク

Python標準ライブラリによって提供されるwsgirefモジュールを通じて独自のWebフレームワークを開発します

#!/usr/bin/env python
#coding:utf-8
from wsgiref.simple_server import make_server
def index():
    return &#39;index&#39;
def login():
    return &#39;login&#39;
def routers():
    
    urlpatterns = (
        (&#39;/index/&#39;,index),
        (&#39;/login/&#39;,login),
    )
    
    return urlpatterns
def RunServer(environ, start_response):
    start_response(&#39;200 OK&#39;, [(&#39;Content-Type&#39;, &#39;text/html&#39;)])
    url = environ[&#39;PATH_INFO&#39;]
    urlpatterns = routers()
    func = None
    for item in urlpatterns:
        if item[0] == url:
            func = item[1]
            break 
    if func:
        return func()
    else:
        return &#39;404 not found&#39;
    
if __name__ == &#39;__main__&#39;:
    httpd = make_server(&#39;&#39;, 8000, RunServer)
    print "Serving HTTP on port 8000..."
    httpd.serve_forever()


以上がDjango の基本チュートリアルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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