标签:
Python之Web框架:
Django
一. Web框架的本质:
对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 #web框架的基础结构,几乎所有开发者都是基于此基础结果进行扩展。 5 6 import socket 7 8 def handle_request(client): 9 buf = client.recv(1024) 10 client.send("HTTP/1.1 200 OK\r\n\r\n") 11 client.send("Hello, Seven") 12 13 def main(): 14 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 15 sock.bind((‘localhost‘,8000)) 16 sock.listen(5) 17 18 while True: 19 connection, address = sock.accept() 20 handle_request(connection) 21 connection.close() 22 23 if __name__ == ‘__main__‘: 24 main()
二. Web框架的实现:
1. 基于WSGI规范:
WSGI(Web Server Gateway Interface)是一种规范, 其目标是在Web服务器和Web框架层之间提供一个通用的API标准,减少之间的互操作性并形成统一的调用方式。解决了现在众多框架,如:Django ,Flask, web.py等共用一个标准,Django应用比较广泛。
Python标准库中提供了简单的参考服务器(wsgirefs): wsgiref.simple_server.WSGIServer.
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 from wsgiref.simple_server import make_server 5 6 def RunServer(environ, start_response): 7 start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/html‘)]) 8 return ‘<h1>Hello, web!</h1>‘ 9 10 if __name__ == ‘__main__‘: 11 httpd = make_server(‘‘, 8000, RunServer) 12 print "Serving HTTP on port 8000..." 13 httpd.serve_forever()
2. 自定义socket,代表有Tornado.
三. 自定义一个Web框架:
标签:
原文地址:http://www.cnblogs.com/python-nameless/p/5831983.html