>백엔드 개발 >파이썬 튜토리얼 >Django 기본 튜토리얼 요약

Django 기본 튜토리얼 요약

WBOY
WBOY원래의
2017-06-28 12:00:241277검색

모든 웹 애플리케이션은 기본적으로 소켓 서버이며 사용자의 브라우저는 실제로 소켓 클라이언트입니다.

간단한 웹 프로그램:

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

파이썬 웹 프로그램은 크게 서버 프로그램과 응용 프로그램으로 나누어집니다. 서버 프로그램은 소켓 서버를 캡슐화하고 요청이 오면 요청된 다양한 데이터를 정렬하는 역할을 담당합니다. 애플리케이션은 특정 논리 처리를 담당합니다. 애플리케이션 개발을 촉진하기 위해 많은 웹 프레임워크가 등장했습니다. 예를 들어 Django, Flask, web.py 등이 있습니다.

프레임워크마다 개발 방법이 다르지만, 어떤 경우에도 개발된 애플리케이션은 서버 프로그램과 협력하여 사용자에게 서비스를 제공해야 합니다. 이러한 방식으로 서버 프로그램은 다양한 프레임워크에 대해 다양한 지원을 제공해야 합니다. 이러한 혼란스러운 상황은 서버나 프레임워크에 좋지 않습니다. 서버의 경우 다양한 프레임워크를 지원해야 합니다. 프레임워크의 경우 이를 지원하는 서버만 개발된 애플리케이션에서 사용할 수 있습니다. 이때 표준화가 특히 중요해집니다. 서버 프로그램이 이 표준을 지원하고 프레임워크도 이 표준을 지원한다면 표준을 함께 사용할 수 있습니다. 표준이 결정되면 양 당사자는 이를 개별적으로 구현합니다. 이러한 방식으로 서버는 더 많은 표준 지원 프레임워크를 지원할 수 있으며 프레임워크는 더 많은 표준 지원 서버를 사용할 수 있습니다.

WSGI

웹 서버 게이트웨이 인터페이스는 웹 앱과 웹 서버 간의 분리를 달성하기 위해 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()

커스텀 웹 프레임워크

파이썬 표준 라이브러리에서 제공하는 wsgiref 모듈을 통해 자체 웹 프레임워크 개발

#!/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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.