2018年要学习的10大Python Web框架
通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松。他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素。
在本文中,我们分享了我们自己的前十大Python Web框架列表,我们认为这些列表对于您成为专业后端开发人员以及改进现有技能集的方式将会非常有用。请记住,这些框架并没有按照特定的顺序排列:我们专注于展示你能做什么,而不是告诉你应该做什么。
有些事情要考虑
在决定使用哪个框架时,请查看项目的规模和复杂程度。如果您希望开发的是一个包含功能和需求的大型系统,那么全栈框架可能是正确的选择。如果你的应用在更小和更简单的一面,你应该考虑一个微框架。
你可以找到一些框架的种类和焦点信息在这里。但是,最终的决定应该来自您对项目的理解以及您想要简化的任务。
但是,框架也可能阻碍发展。在选择全栈框架时,您经常注册一组限制。当然,你可以找到解决这些问题的方法,但要小心,不要花更多的时间来争取自己的自由,而是要用纯Python编写应用程序。
全堆栈框架
Django是一个免费的开源全栈Python框架。它试图默认包含所有必要的功能,而不是将它们作为单独的库提供。
Django的一些示例性功能是它的身份验证,URL路由,,对象关系映射器(ORM)和数据库模式迁移(Django v.1.7 +)。
Django使用它的ORM将对象映射到数据库表。相同的代码适用于不同的数据库,并不难从一个数据库转移到另一个数据库。Django使用的主要数据库是PostgreSQL,MySQL,SQLite和Oracle,但第三方驱动程序也允许您使用其他数据库。
在SteelKiwi,我们使用Django作为后端开发的主要框架。如果您想看看我们已经使用Django开发的惊人的应用程序,请访问我们的项目页面。
Pyramid是一个开源的基于Python的Web应用程序框架。其主要目标是尽可能以最小的复杂性进行操作。
金字塔最显着的特点是它能够同时适用于小型和大型应用程序。金字塔的一些很棒的功能包括:
单文件应用程序
全面支持模板和资产规范
灵活的认证和授权
,支持和全面的数据文档
和许多每个路由视图
TurboGears是一个开源的,数据驱动的全栈Web应用程序框架。
它允许您快速开发可扩展的数据驱动的Web应用程序。TurboGears配备了用户友好的模板和强大灵活的ORM。
TurboGears的一些独特功能包括:
多数据库支持
MVC风格的架构
支持SQLObject和SQLAlchemy
和Genshi包含在首选的模板语言中
使用FormEncode进行验证
作为网络服务器的塔
一个简化前端设计和服务器开发协调的应用程序库
模板
面向前端的基于WSGI的服务器(粘贴HTTP服务器,CherryPy WSGI / HTTP服务器等)
命令行工具
集成
所有功能都作为函数装饰器实现
Web2py是一个可扩展的开源全栈Python框架。但是,在进一步阅读之前,您应该知道Web2py不支持Python 3。
不过,Web2py的优点在于它配备了自己的基于Web的IDE,其中包括代码编辑器,调试器和一键式部署。
其他有价值的Web2py功能包括:
没有安装和配置要求
能够在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5-2.7或Java + Python的虚拟主机上运行
多种协议的可读性
数据安全可防止跨站点脚本,注入漏洞和恶意文件执行等漏洞
成功使用软件工程实践,使代码易于阅读和维护
错误跟踪,彻底的错误记录和票务
支持国际化
向后兼容性确保以用户为导向,而不需要失去与早期版本的联系
Flask是一个在BSD许可下可用的Python框架。它受到了Sinatra Ruby框架的启发。Flask依赖于Werkzeug WSGI工具包和Jinja2模板。
Flask背后的主要思想是帮助构建坚实的Web应用程序基础。从那里,你可以使用任何你可能需要的扩展。
Flask的轻量化和模块化设计使其能够轻松适应开发人员的需求。它包含许多有用的开箱即用功能:
内置开发服务器和快速调试器
集成支持单元测试
安全的Cookie支持(客户端会话)
WSGI 1.0合规性
基于Unicode
能够插入任何ORM
HTTP请求处理
瓶子是一个微框架。Bottle最初意味着构建API,它将所有内容都实现在一个源文件中。除了Python标准库之外,它没有任何依赖关系。使用Bottle进行编码可以让您更接近金属而不是使用任何全栈框架进行编码。
其默认功能包括路由,模板,实用程序以及WSGI标准的基本抽象。
路由 - 支持对函数调用映射的请求,使您可以实现干净和动态的URL
模板 - 快速和Pythonic 开箱即用,全面支持mako,jinja2和猎豹
实用程序 - 舒适地访问表单数据,文件上传,Cookie,标题和其他与HTTP相关的元数据
服务器-支持一个内置的HTTP开发服务器fapws3,比约恩,GAE,СherryPy,以及任何其他WSGI能力的HTTP服务器
Bottle是原型开发,学习Web框架组织以及构建简单个人应用的完美解决方案。
CherryPy是一个开源,极简主义的Web框架。它使构建Python Web应用程序与构建任何其他面向对象的程序无异。
事实上,CherryPy支持的网络应用程序是一个独立的Python应用程序,它嵌入了自己的多线程网络服务器。CherryPy应用程序可在任何支持Python的操作系统上运行(Windows,MacOS,Linux等)。它们可以部署在任何可以运行普通Python应用程序的地方。CherryPy应用程序不需要Apache,但是您可以在Apache后面运行CherryPy应用程序,以及在Lighttpd或IIS后面运行它。
CherryPy不是一个非常有限的框架,因为它允许您使用任何类型的技术进行模板化,数据访问等。但是,它仍然能够处理会话,静态,Cookie,文件上传以及web框架通常可以执行的其他任何操作。
一些默认的CherryPy功能包括:
一个HTTP / 1.1兼容WSGI线程池网络服务器
简单一次运行多个HTTP服务器
一个强大的配置系统
一个灵活的插件系统
出的现成的工具缓存,编码,会话,认证,静态内容,并等
内置支持分析,覆盖和测试
能够在Python 2.7+,Python 3.1+,PyPy,Jython和Android上运行
异步框架
Sanic是一个构建在uvloop上的Python Web框架,专门为通过异步请求处理的快速HTTP响应而创建。
它运行在Python 3.5+上。Sanic支持异步请求处理程序,这使它与Python 3.5的异步/等待函数兼容。这提高了速度,提供了非阻塞功能。
在一个进程和100个连接的基准测试中,Sanic每秒能够处理33,342个请求。
Tornado是一个Python Web框架和异步网络库。它使用非阻塞网络I / O并解决C10k问题(意思是说,如果配置正确,它可以处理10,000多个并发连接)。
这使它成为构建需要高性能和数万并发用户的应用程序的理想工具。
龙卷风的主要特点是:
内置的用户认证支持
实时服务
高品质的性能
基于Python的网页模板语言
非阻塞HTTP客户端
实施第三方认证和授权计划(Google OpenID / OAuth,Facebook登录,雅虎BBAuth,FriendFeed OpenID / OAuth,)
支持翻译和本土化
其他
Dash是一个开源Python框架,用于构建分析型Web应用程序。对于不熟悉Web开发的Python数据科学家来说,这尤其有利。
Dash应用程序是运行并通过HTTP请求与JSON数据包进行通信的Web服务器。他们的前端使用呈现组件
使用Dash开发的应用程序在Web浏览器中呈现,并可以部署到服务器。这也意味着Dash应用程序本质上是跨平台和移动就绪的。
Dash开发人员可以访问底层Flask实例及其所有可配置属性。为了扩展Dash应用程序的功能,开发人员还可以使用一套丰富的
选择一个Python Web框架
正确的框架可能是您开发一个成功项目所需的一切。我们真的希望你在本文中找到了一个有趣的框架。如果您有兴趣探索更多选项。
另外,欢迎私信小编交流 Python 的学习经验哦
2018年要学习的10大Python Web框架的更多相关文章
- “脚踢各大Python Web框架”,Sanic真有这能耐么?
在Github上,Sanic第一句介绍语就是: "Sanic is a Flask-like Python 3.5+ web server that's written to go fast ...
- python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- python web框架介绍对比
Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占 ...
- python web框架——扩展Django&tornado
一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...
- 浅谈Python web框架
一.Python web框架 Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全 ...
- 6 大主流 Web 框架优缺点对比:15篇前端热文回看
摘自:http://blog.csdn.net/VhWfR2u02Q/article/details/78993079 注:以下文章,点击标题即可阅读 <6 大主流 Web 框架优缺点对比> ...
- Python Web框架本质——Python Web开发系列一
前言:了解一件事情本质的那一瞬间总能让我获得巨大的愉悦感,希望这篇文章也能帮助到您. 目的:本文主要简单介绍Web开发中三大基本功能:Socket实现.路由系统.模板引擎渲染. 进入正题. 一. 基础 ...
- 一步一步理解 python web 框架,才不会从入门到放弃
要想清楚地理解 python web 框架,首先要清楚浏览器访问服务器的过程. 用户通过浏览器浏览网站的过程: 用户浏览器(socket客户端) 3. 客户端往服务端发消息 6. 客户端接收消息 7. ...
随机推荐
- 剑指Offer系列之题16~题20
目录 16.反转链表 17.合并两个排序的链表 18.树的子结构
- Vulnhub homeless靶机渗透
信息搜集 nmap -sP 192.168.146.6 nmap -A -Pn 192.168.146.151 直接访问web服务. 大概浏览一下没发现什么,直接扫描下目录把dirb+bp. BP具体 ...
- 家庭记账本app进度之下拉框和数字转轮的相关应用
这次主要是悬系的下拉框Spinner和数字转轮NumberPicker的使用.先分析相关的用到的知识点. 在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子 ...
- Google GMS介绍
Google GMS介绍GMS全称为GoogleMobile Service.GMS目前提供有Search.Search by Voice.Gmail.Contact Sync.Calendar Sy ...
- Linux服务器架设篇,DNS服务器(二),cache-only DNS服务器的搭建
一.理论基础 什么是cache-only服务器?即不具备自己正反解Zone的能力,仅进行缓存或转发的DNS服务器.其实它也称不上是DNS服务器.但是也是一个必备的知识点. 这种服务器只有缓存搜索结果的 ...
- Android 圆形图片库 CircleImageView
高仿微信朋友圈 10s 视频裁剪 引语 晚上好,我是猫咪,我的公众号「程序媛猫咪」会推荐 GitHub 上好玩的项目,挖掘开源的价值,欢迎关注我. <Android 图片裁剪库 uCrop> ...
- Alibaba Cloud Linux 2 LTS 正式发布,提供更高性能和更多保障!
在Alibaba Cloud Linux 2(原Aliyun Linux 2)上线一年之际阿里云对外正式发布Alibaba Cloud Linux 2 LTS版本.LTS版本的发布对于Alibaba ...
- 15-场景中用到的资源监视器(perfmon metrics collector)
JMeter 无法提取除 Tomcat 之外的其他服务器的指标,因此PerfMon Metrics Collector可用来获取性能数据. PerfMon Metrics Collector使用的是S ...
- 双色球的Python实现
代码如下: red_ball = [] blue_ball = [] count = 0 while count < 6: n = int(input('\033[31mPlease enter ...
- Linux/UNIX 下终端复用利器 tmux
简介 tmux 是一个终端复用器类自由软件,功能类似 GNU Screen,但使用 BSD 许可发布.用户可以通过 tmux 在一个终端内管理多个分离的会话,窗口及面板,对于同时使用多个命令行,或多个 ...