1、django

django可能是最具代表性的python框架,是遵循mmvc结构模式的开源框架。其名字来自djangoreinhardt,法国作曲家和吉他演奏家,很多人认为他是历史上最伟大的吉他演奏家。位于堪萨斯州的lawrence城市的lawrencejournal-world报社有两名程序员,adrianholovaty和simonwillison,他们在2003年开发了django,为报纸开发了网络程序。

2、turbogears

turbogears是sqlalchemy、webob、repoze、genshi等着名python项目构筑的框架。从某种意义上说,turbogears是将多个已经建立的开放平台粘在一起。和django一样,采用mvc结构。最近还包含了最小模式,可以作为微框架。

3、flask

flask是一个基于jinja2和werkzeug的python微框架,类似于其他框架。是bsd授权的,有少量限制的免费软件许可。使用flask的网站包括领英linkedin和pinterest。

知识点扩展:

基于socket

自己处理请求

#!/usr/bin/env python3
#coding:utf8
import socket
def handle_request(client):
 #接收请求
 buf = client.recv(1024)
 print(buf)
 #返回信息
 client.send(bytes('<h1>welcome liuyao webserver</h1>','utf8'))
def main():
 #创建sock对象
 sock = socket.socket()
 #监听80端口
 sock.bind(('localhost',8000))
 #最大连接数
 sock.listen(5)
 print('welcome nginx')
 #循环
 while true:
 #等待用户的连接,默认accept阻塞当有请求的时候往下执行
 connection,address = sock.accept()
 #把连接交给handle_request函数
 handle_request(connection)
 #关闭连接
 connection.close()
if __name__ == '__main__':
 main()

基于wsgi

wsgi,全称 web server gateway interface,或者 python web server gateway interface ,是为 python 语言定义的 web 服务器和 web 应用程序或框架之间的一种简单而通用的接口。自从 wsgi 被开发出来以后,许多其它语言中也出现了类似接口。

wsgi 的官方定义是,the python web server gateway interface。从名字就可以看出来,这东西是一个gateway,也就是网关。网关的作用就是在协议之间进行转换。

wsgi 是作为 web 服务器与 web 应用程序或应用框架之间的一种低级别的接口,以提升可移植 web 应用开发的共同点。wsgi 是基于现存的 cgi 标准而设计的。

很多框架都自带了 wsgi server ,比如 flask,webpy,django、cherrypy等等。当然性能都不好,自带的 web server 更多的是测试用途,发布时则使用生产环境的 wsgi server或者是联合 nginx 做 uwsgi 。

python标准库提供的独立wsgi服务器称为wsgiref。

#!/usr/bin/env python
#coding:utf-8
#导入wsgi模块
from wsgiref.simple_server import make_server

def runserver(environ, start_response):
 start_response('200 ok', [('content-type', 'text/html')])
 return [bytes("welcome webserver".encode('utf8'))]

if __name__ == '__main__':
 httpd = make_server('', 8000, runserver)
 print ("serving http on port 8000...")
 httpd.serve_forever()
 #接收请求
 #预处理请求(封装了很多http请求的东西)

到此这篇关于python web框架的总结的文章就介绍到这了,更多相关python web框架的整理内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!