Heim  >  Artikel  >  Backend-Entwicklung  >  Zusammenfassung des grundlegenden Django-Tutorials

Zusammenfassung des grundlegenden Django-Tutorials

WBOY
WBOYOriginal
2017-06-28 12:00:241257Durchsuche

Bei allen Webanwendungen handelt es sich im Wesentlichen um einen Socket-Server, und der Browser des Benutzers ist tatsächlich ein Socket-Client.

Ein einfaches Webprogramm:

#!/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-Webprogramme werden im Allgemeinen in Serverprogramme und Anwendungsprogramme unterteilt. Das Serverprogramm ist dafür verantwortlich, den Socket-Server zu kapseln und verschiedene angeforderte Daten zu sortieren, wenn die Anfrage eintrifft. Die Anwendung ist für die spezifische logische Verarbeitung verantwortlich. Um die Entwicklung von Anwendungen zu erleichtern, sind viele Web-Frameworks entstanden. Zum Beispiel Django, Flask, web.py usw.

Unterschiedliche Frameworks haben unterschiedliche Entwicklungsmethoden, aber egal was passiert, die entwickelte Anwendung muss mit dem Serverprogramm zusammenarbeiten, um den Benutzern Dienste bereitzustellen. Auf diese Weise muss das Serverprogramm unterschiedliche Unterstützung für unterschiedliche Frameworks bereitstellen. Eine solch chaotische Situation ist weder für den Server noch für das Framework gut. Für Server ist die Unterstützung verschiedener Frameworks erforderlich. Für Frameworks können von entwickelten Anwendungen nur Server verwendet werden, die dies unterstützen. Zu diesem Zeitpunkt kommt der Standardisierung eine besondere Bedeutung zu. Wir können einen Standard einrichten, solange das Serverprogramm diesen Standard unterstützt und das Framework diesen Standard auch unterstützt, dann können sie zusammen verwendet werden. Sobald die Standards festgelegt sind, setzen beide Parteien diese individuell um. Auf diese Weise kann der Server mehr standardunterstützende Frameworks unterstützen und das Framework kann mehr standardunterstützende Server verwenden.

WSGI

Webserver-Gateway-Schnittstelle ist eine in Python geschriebene Spezifikation, die das Schnittstellenformat zwischen Web-App und Webserver definiert und Web-App und Entkopplung zwischen Webservern realisiert.

Der unabhängige wsgi-Server, der von der Python-Standardbibliothek bereitgestellt wird, heißt 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()

Benutzerdefiniertes Web-Framework

Entwickeln Sie ein eigenes Web mit dem wsgiref-Modul, das vom Python-Standard bereitgestellt wird Bibliotheksrahmen

#!/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()


Das obige ist der detaillierte Inhalt vonZusammenfassung des grundlegenden Django-Tutorials. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn