推荐值得学习的12款python-web开发框架


Posted in Python onAugust 10, 2020

最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的12个框架进行分类整理,一起来看看吧!

推荐值得学习的12款python-web开发框架

全栈框架

  • Django
  • Pyramid
  • TurboGears
  • Web2py

微型框架

  • Flask
  • Bottle
  • CherryPy
  • Falcon
  • Hug
  • FastAPI

异步框架

  • Sanic
  • Tornado

其他

  • Dash

Django

GitHub stars:47078

推荐值得学习的12款python-web开发框架

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。那么Django凭什么能独占鳌头呢:

  • 完善的ORM关系映射
  • 强大的路由映射功能
  • 完善的视图模板的实现
  • 健全的后台管理系统
  • 强大的缓存支持

GitHub https://github.com/django

Pyramid

GitHub stars:3216

推荐值得学习的12款python-web开发框架

Pyramid是一个基于Python的开放源代码,也是第二个值得注意的Web应用程序框架。其目标是以最小的复杂度来尽可能多地完成更多任务。Pyramid 1.10是框架的当前版本,并且是自2010年以来的第十次更新。那么Pyramid有以下特点:

  • 单个文件的应用程序
  • 通用的URL
  • 可扩展的配置
  • 各种各样的模板
  • 灵活的身份验证和授权
  • 测试、支持和全面的数据文档

TurboGears

GitHub stars:654

推荐值得学习的12款python-web开发框架

TurboGears是一个开源的,数据驱动的全栈Web应用程序框架。它建立在许多中间件和许多库的基础上,因此可以快速开发可扩展的数据驱动的Web应用程序。它拥有友好的模板引擎以及一个强大而灵活的ORM和可重复使用的代码片段。除了使设计师的工作更轻松的出色模板系统外,TurboGears还提供了很多灵活性,强大的聚合支持,TurboGears的一些独特功能包括:

  • 多数据库支持
  • MVC风格的架构
  • 支持SQLObject和SQLAlchemy
  • 使用FormEncode进行验证
  • 基于WSGI的前端服务器
  • 命令行工具
  • MochiKit JavaScript库集成

Web2py

GitHub stars:1798

推荐值得学习的12款python-web开发框架

Web2py是可扩展的开源全栈Python框架。在处理数据时,它非常强大。Web2py最初是作为教学工具提供的,重点是易用性。Web2py的优点是它带有自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。Web2py的其他重要功能包括:

  • 无需安装和配置
  • 能够在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5?2.7或Java + Python的网络托管上运行
  • 多种协议的可读性
  • 数据安全性可防止跨站点脚本编写,注入漏洞和恶意文件执行等漏洞
  • 成功采用软件工程实践,使代码易于阅读和维护

Flask

GitHub stars:49380

推荐值得学习的12款python-web开发框架

Flask是一个轻量级的可定制框架,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。它包括许多有用的现成功能:

  • 内置开发服务器和快速调试器
  • 集成的单元测试支持
  • 安全cookie支持
  • 符合WSGI 1.0
  • 基于Unicode
  • 能够插入任何ORM

Bottle

GitHub stars:6349

推荐值得学习的12款python-web开发框架

Bottle是一个微框架。Bottle最初意在构建API,它在单个源文件中实现所有功能。除了Python标准库外,它没有依赖项。使用Bottle进行编码比使用任何全栈框架进行编码更稳定。但是,只有编写一个很小的应用程序(最多500行代码且无特殊要求)时,Bottle才是较好的选择。它的默认功能包括路由,模板,实用程序以及基于WSGI标准的基本抽象。

  • 路由 :支持对函数调用映射的请求
  • 模板 :一个现成的快速Pythonic 模板引擎,并全面支持mako和inja2
  • 实用程序 :轻松访问表单数据,文件上传,Cookie
  • 服务器 :一个内置的HTTP服务器的发展,支持fapws3

CherryPy

GitHub stars:1057

推荐值得学习的12款python-web开发框架

CherryPy是一个开放源代码的简约Web框架。它使构建Python Web应用程序与构建任何其他面向对象的程序没有什么不同。但基于CherryPy的Web应用程序是一个独立的Python应用程序,它嵌入了自己的多线程Web服务器。借助自己的Web服务器,扩展点包括请求-响应周期之外的功能,从而增加了CherryPy的可扩展性。CherryPy的一些默认功能包括:

  • 强大的配置系统
  • 灵活的插件系统
  • 现成的缓存,编码,会话,认证,静态内容等工具
  • 内置对性能分析,覆盖率和测试的支持
  • 能够在Python 2.7 +,Python 3.1 +,PyPy,Jython和Android上运行

Falcon

GitHub stars:7500

推荐值得学习的12款python-web开发框架

Falcon是一个Python Web API框架,用于构建非常快速的应用程序后端。该框架的徽标是猎鹰,象征着猎鹰的工作速度。该框架允许开发人员制定更简洁的设计并处理大多数请求。Falcon未限制开发人员选择数据库和授权库。Falcon其他的功能有:

  • 全面的测试套件可实现100%的代码覆盖率
  • 高度优化的代码库
  • 前期异常处理
  • 通过中间件组件处理DRY请求
  • 通用的HTTP错误响应
  • 通过WSGI帮助器进行单元测试

Hug

GitHub stars:5955

推荐值得学习的12款python-web开发框架

Hug是一个Python 3 API开发框架。它的设计使软件工程师可以一次开发API,然后在需要时再使用它。Hug框架通过提供各种接口来简化API开发。这就是为什么该框架被称为Python 3中最快的框架之一的主要原因。hug的主要特点:

  • 支持自动文档
  • 注释驱动的验证
  • 内置版本管理
  • 遵守cython
  • 可以当作python库使用

FastAPI

GitHub stars:10900

推荐值得学习的12款python-web开发框架

FastAPI是基于Python的现代框架。它最初被设计为易于使用,以确保最佳的开发体验。迄今为止,FastAPI是使用Python 3.6+构建API最快的框架之一。该框架具有Flask的几个特征,包括其简单性。整个框架基于Starlette构建,并包含其大部分功能(模板,WebSocket和GraphQL支持)。FastAPI框架提供:

  • 开发速度提高200%至300%
  • 减少40%的错误
  • 调试时间更少
  • 减少代码重复
  • 自动交互式文档

Sanic

GitHub stars:13511

推荐值得学习的12款python-web开发框架

Sanic是一个基于uvloop的Python Web框架,专门针对通过异步请求处理的快速HTTP响应而创建。它可以在Python 3.5+上运行。Sanic支持异步请求处理程序,这使其与Python 3.5的async / await函数兼容。这提高了速度,提供了非阻塞功能。由于Sonic具有路由,中间件,cookie,版本控制,静态文件,蓝图,基于类的视图和套接字,因此被认为是首选的异步框架。但是,它不提供数据库支持和模板。

Tornado

GitHub stars:18293

推荐值得学习的12款python-web开发框架

Tornado是一个Python web框架和异步网络库,侧重于速度和处理大量流量的能力。它使用非阻塞网络I/O,解决了C10k问题(这意味着,如果正确配置,它可以处理10,000多个并发连接)。这使得它成为构建需要高性能和成千上万并发用户的应用程序的好工具。

  • 内置对用户身份验证的支持
  • 实时服务
  • 高品质的表现
  • 基于Python的Web模板语言
  • 实施第三方身份验证和授权方案(Google OpenID / OAuth,Facebook登录,Yahoo BBAuth,FriendFeed OpenID / OAuth,Twitter OAuth)

Dash

GitHub stars:11000

推荐值得学习的12款python-web开发框架

Dash是一个用于构建分析性web应用程序的开源Python框架。对于不太熟悉web开发的Python数据科学家来说,这尤其有用。Dash有两个特点:

  • 仅使用Python代码构建高度交互的应用程序。
  • 使用Python工具来操作数据变得非常简单。

以上就是推荐值得学习的12款python-web开发框架的详细内容,更多关于Python web开发框架的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python开发的小球完全弹性碰撞游戏代码
Oct 15 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
python中子类调用父类函数的方法示例
Aug 18 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
python实现图片压缩代码实例
Aug 12 Python
解决pycharm 安装numpy失败的问题
Dec 05 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
opencv读取视频并保存图像的方法
Jun 04 Python
python turtle绘图命令及案例
Nov 23 Python
python多线程semaphore实现线程数控制的示例
Aug 10 #Python
如何在python中实现线性回归
Aug 10 #Python
Python多线程的退出控制实现
Aug 10 #Python
Python进行统计建模
Aug 10 #Python
Python如何爬取b站热门视频并导入Excel
Aug 10 #Python
拿来就用!Python批量合并PDF的示例代码
Aug 10 #Python
Python 发送邮件方法总结
Aug 10 #Python
You might like
Linux系统中设置多版本PHP共存配合Nginx服务器使用
2015/12/21 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
JS 统计时间
2021/03/09 Javascript
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
jQuery插件pagination实现无刷新分页
2016/05/21 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
浅谈$('div a') 与$('div>a')的区别
2016/07/18 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
微信小程序--组件(swiper)详细介绍
2017/06/13 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
微信小程序通过websocket实时语音识别的实现代码
2020/08/19 Javascript
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
Python面向对象程序设计多继承和多态用法示例
2019/04/08 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
详解python日志输出使用配置文件格式
2021/02/10 Python
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
大学生英语演讲稿
2014/04/24 职场文书
总经理检讨书
2014/09/15 职场文书
小学优秀班主任材料
2014/12/17 职场文书
检讨书范文1000字
2015/01/28 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL