哪些是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中编写ORM框架的入门指引
Apr 29 Python
介绍Python中的fabs()方法的使用
May 14 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
详解python发送各类邮件的主要方法
Dec 22 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
python实现抖音点赞功能
Apr 07 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
python遍历文件目录、批量处理同类文件
Aug 31 Python
python爬虫之遍历单个域名
Nov 20 Python
Python 实现Mac 屏幕截图详解
Oct 05 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解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
2016/02/28 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python mysql中in参数化说明
2020/06/05 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
2014年度培训工作总结
2014/11/27 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
创业计划书之废品回收
2019/09/26 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
Java完整实现记事本代码
2022/06/16 Java/Android