哪些是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实现方法
Nov 18 Python
Python运算符重载用法实例分析
Jun 01 Python
python利用拉链法实现字典方法示例
Mar 25 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
python画一个玫瑰和一个爱心
Aug 18 Python
python发送告警邮件脚本
Sep 17 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 27 Python
Python中tkinter的用户登录管理的实现
Apr 22 Python
宝塔更新Python及Flask项目的部署
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
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
告诉你什么是javascript的回调函数
2014/09/04 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
从零学Python之入门(五)缩进和选择
2014/05/27 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
导游个人求职信范文
2014/03/23 职场文书
温馨提示标语
2014/06/26 职场文书
中国梦团日活动总结
2014/07/07 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
授权委托书协议书
2014/10/16 职场文书
2015年财务部工作总结
2015/04/10 职场文书
行政处罚决定书
2015/06/24 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers