哪些是python中web开发框架


Posted in Python onJune 17, 2020

python在web开发方面有着广泛的应用。鉴于各种各样的框架,对于开发者来说如何选择将成为一个问题。为此,我特此对比较常见的几种框架从性能、使用感受以及应用情况进行一个粗略的分析。

1 Django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。Django与其他框架比较,它有个比较独特的特性,支持orm,将数据库的操作封装成为python,对于需要适用多种数据库的应用来说是个比较好的特性。不过这种特性,已经有其他库完成了,sqlalchemy.

2 Flask

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。

3 Tornado

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架。不过现在与众多的框架比较,Tornado已经被抛在了后面,Django已经超过了它,更不说其他框架了,只能说Tornado使用纯python开发的性能还是不能与其他框架借助于cython开发的性能相比。

4 web.py

web.py 是一个Python 的web 框架,它简单而且功能强大。web.py 是公开的,无论用于什么用途都是没有限制的。而且相当的小巧,应当归属于轻量级的web 框架。但这并不影响web.py 的强大,而且使用起来很简单、很直接。在实际应用上,web.py 更多的是学术上的价值,因为你可以看到更多web 应用的底层,这在当今“抽象得很好”的web 框架上是学不到的 :)

5 Aiohttp

高性能异步web框架,既有客户端的也有服务端的,还支持web-socket

6 Sanic

与flask类似,并支持异步

7 Vibora

旨在成为最快的python web框架。vibora的高性能依赖于 cython实现的uvloop异步框架及cython实现的http_parser, 再加上一些cython构建的web组件,比如 模板,user-route等。目前还处于测试阶段。

8 Bottle

Bottle是一个简单高效的遵循WSGI的微型python Web框架。说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。

9 Falcon

Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。

10 weppy

性能优于flask的一个全栈web框架。

知识点补充:

框架选择的误区

在框架的选择问题上,许多人很容易就陷入了下面两个误区中而不自知:

1. 哪个框架最好——世上没有最好的框架,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,如果最熟悉的是Ruby那就用Ruby好了,编程语言、框架都只是工具,能多、快、好、省的干完活就是好东西。

2. 过分关注性能——其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。 PHP的Zend Framework是出了名的慢,但是Zend Framework一样有大站,如:digg.com;常被人说有性能问题的Ruby和Rails,不是照样可以开发出twitter吗?再者现在的硬 件、带宽成本其实是很低的,特别有了云计算平台后,人力成本才是最贵的,没有上万的IP根本就不用太在意性能问题,流量上去了花点钱买点服务器空间好了, 简单快速的解决性能问题。

注:前面有网友质疑我“Quora是用Pylons开发的”这样的说法不客观,特说明一下,这里所说的某个网站A是用B开发的,只是指A主要或部分是由B开发的,大家就不要再去纠结A还用C了。

到此这篇关于哪些是python中web开发框架的文章就介绍到这了,更多相关python的web开发框架有哪些内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python基础教程之循环介绍
Aug 29 Python
Python实现去除代码前行号的方法
Mar 10 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
python使用代理ip访问网站的实例
May 07 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 Python
python如何处理程序无法打开
Jun 16 #Python
python模块如何查看
Jun 16 #Python
python实现PDF中表格转化为Excel的方法
Jun 16 #Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 #Python
结束运行python的方法
Jun 16 #Python
深入理解Python 多线程
Jun 16 #Python
keras.layer.input()用法说明
Jun 16 #Python
You might like
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
浅谈React Native 中组件的生命周期
2017/09/08 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue debug 二种方法
2018/09/16 Javascript
浅析Python中的多条件排序实现
2016/06/07 Python
python实现批量按比例缩放图片效果
2018/03/30 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
Arti-shopping中文官网:大型海外商品一站式直邮平台
2020/03/23 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
竞选班长的演讲稿
2014/04/24 职场文书
政府门卫岗位职责
2014/04/29 职场文书
导游词格式
2015/02/13 职场文书
运动会800米赞词
2015/07/22 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
《春酒》教学反思
2016/02/22 职场文书
python - asyncio异步编程
2021/04/06 Python
基于python制作简易版学生信息管理系统
2021/04/20 Python
SQL bool盲注和时间盲注详解
2022/07/23 SQL Server