网站首页 > 技术文章 正文
2017年就要过完了,我们来总结一下2017年最好用的17个Python Web框架
分享前还是先分享自己的Python学习交流群:666468218
群内不定时分享干货,包括2017最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流
Django
Django的主要原则是在时间上发展任何复杂的东西。它最初是为内容管理系统开发的,但其丰富的功能(包括但不限于模板,自动数据库生成,数据库访问层,自动管理界面生成)非常适合其他类型的Web应用程序。提供用于开发的Web服务器。形成序列化和验证,具有模板继承的模板系统,以多种方式缓存,国际化,序列化为XML或JSON。Django提供了维护应用程序:授权系统,动态管理系统,RSS和Atom生成器,Google Sitemaps生成器等等。Django被Instagram,Pinterest,The Washington Times,Disqus,Bitbucket和Mozilla使用。
在开发一个微应用程序时,Django从一开始就以复杂性开始。在安装包(字面意义上的Django)之后,您必须使用“django-admin startproject myproject”命令创建一个项目。然后,您应该配置应用程序
myproject/myproject/settings.py
至少数据库访问和模板。Django应用程序在结构上总是统一的。
myproject/myproject/urls.py
另外,myproject / myproject / settings.py和myproject / templates / myproject / message.html中的模板也有一些明显的变化。
pip freeze contains: appdirs, Django, packaging, pyparsing, six.
Flask
基于Werkzeug和Jinja2的Python的微框架“好心”。作为一个微框架,Flask在开发具有简单需求的小应用程序时非常值得使用,而不像Django,Pyramid等。例如,你可以用任何你喜欢的方式使用Flask来操作你的数据库 - 通过SQLAlchemy或其他方法。如果您打算开发一个小应用程序并自行配置一切,请使用它。其他功能:开发Web服务器,集成单元测试支持,Google App Engine兼容性。Flask由LinkedIn使用,Pinterest。
Flask的例子很简单
pip freeze contains: appdirs, click, Flask, itsdangerous, Jinja2, MarkupSafe, packaging, pyparsing, six, Werkzeug.
Tornado
其主要特点是无阻塞的I/O。因此,Tornado可以缩放以处理数以万计的开放连接。一个理想的长轮询,WebSockets和其他使用持续连接的框架。Tornado官方只支持Linux和BSD操作系统(Mac OS X和Microsoft Windows仅推荐用于开发)。Tornado的起源是FriendFeed项目,现在由Facebook拥有。
任务不需要任何Tornado的关键特性 - 异步。顺便说一句,与Tornado简单的应用程序很容易。
pip freeze lists: appdirs, packaging, pyparsing, six, tornado.
Falcon
Falcon是一个适用于小型应用程序,应用程序后端和更高级别框架的微框架。它鼓励遵循REST概念,因此,在使用Falcon进行开发时,您应该考虑映射到HTTP方法的资源和状态转换。Falcon是Python中速度最快的Web框架之一。它被Cronitor,EMC,Hurricane Electric,OpenStack,Opera Software,Wargaming,Rackspace使用。
Falcon根本不适合提供HTML页面。适用于RESTful API。下面是一些代码,用于响应带有JSON响应的GET请求。
As Falcon doesn't include a server, Waitress is suitable as one. waitress-serve --port=8080 app:api
The response for http://localhost:8080/hello is simple {"message": "Hello world!"}
pip freeze contains: appdirs, falcon, packaging, pyparsing, python-mimeparse, six, waitress.
Hug
Python最快的Web框架之一。它旨在构建API。它支持提供几个API版本,自动API文档和注释验证。此外,Hug是建立在另一个名为Falcon的JSON框架之上的。让我们通过Hug提供一个JSON响应。
Launched with the waitress by command "waitress-serve --port=8080 app:__hug_wsgi__"
pip freeze contains: appdirs, falcon, hug, packaging, pyparsing, python-mimeparse, requests, six, waitress.
Sanic
一个Flask般的web框架,开发速度很快。它支持异步请求处理程序,使您的代码非阻塞和快速。
用{'message': 'Hello world!'}JSON 响应的代码可以在下面看到。
pip freeze lists: aiofiles, appdirs, httptools, packaging, pyparsing, sanic, six, ujson, uvloop.
Aiohttp
Aiohttp是一个异步的Web框架,大量使用Python 3.5+异步和等待功能。下面的例子只显示了一个明显的非异步功能。aiohttp不仅仅是一个服务器的web框架,也是客户端的一个。它支持WebSocket服务器和客户端。由于它支持与Jinja2的集成,因此该示例使用此功能。
pip freeze lists: aiohttp, aiohttp-jinja2, appdirs, async-timeout, cchardet, chardet, Jinja2, MarkupSafe, multidict, packaging, pyparsing, six, yarl.
Pyramid
大型应用程序的框架。它的目标是灵活的,不像“盒子里的东西”Django。例如,模板和数据库管理需要外部库。Pyramid网络应用程序从一个单一文件模块开始,并演变成雄心勃勃的项目。
用Pyramid开发单个文件应用程序需要时间!Pyramid文档是作弊的:如果你想用一个字符串作为响应,你可以在他们的主页上有一个例子,但是当你尝试使用模板时...文档不清楚,首先是因为项目结构不明显。Pyramid_chameleon已被另外安装使用变色龙模板(${} instead of Jinja's {{}})。这是应用程序的代码。
pip freeze lists: appdirs, Chameleon, hupper, packaging, PasteDeploy, pyparsing, pyramid, pyramid-chameleon, repoze.lru, six, translationstring, venusian, WebOb, zope.deprecation, zope.interface.
下面的框架不太受欢迎。但是,由于它们还在开发中,所以还是要提及它们。
此图显示了Python框架出现的Google搜索引擎结果的历史记录:
Growler
构建在asyncio之上,受Node.js的Connect和Express框架的启发。ORM,模板等应该手动安装。请求通过传递中间件链来处理。
CherryPy
旨在成为“程序员和问题之间的一种方式”。通过CherryPy开发的常见Web应用程序看起来像一个普通的Python应用程序,它可以在没有复杂的设置和定制的情况下使用。此外,它支持不同的Web服务器,如Apache,IIS等。CherryPy包含一个嵌入式Web服务器,因此您的应用程序可以部署在任何安装了Python的地方。CherryPy允许一次启动多个HTTP服务器。输出压缩,各部分可配置,灵活的插件系统。CherryPy不会强迫你使用任何特定的模板引擎,ORM或JavaScript库,所以你可以使用你喜欢的东西。
MorePath
一个灵活的模型驱动的Web框架。支持REST开箱即用。其主要概念是可重用性和可扩展性。
TurboGears2
一个MVC web框架。其功能包括具有真正的多数据库支持的ORM,支持水平数据分区,小部件系统以简化AJAX应用程序的开发。模板引擎是Kajiki(必须另外安装)。您可以使用TurboGears进行开发,因为它是一个微框架,也是一个完整的解决方案,可以安装额外的组件。请注意,TurboGears2的PyPI包叫做tg.devtools。
Circuits
Circuits与CherryPy具有相似的功能。与CherryPy不同,Circuits是开发独立多进程应用程序的高效Web框架。它是事件驱动的,它支持并发,异步I / O组件。这是完全可用的开箱即用。
Watson-framework
一个基于组件的WSGI事件驱动的MVC Web框架。
Pycnic
用于开发JSON API的最快的Web框架之一。
WebCore
轻量级的全栈框架。您可以在单个文件中开发应用程序,或者根据需要对其进行结构化。
Reahl
用纯Python开发Web应用程序的Web框架。有一些小部件可以在通常的Python代码中使用,定制和编写。这些小部件描述了特定的服务器端和客户端行为。
概要
这个简洁的概述留下了最好的Python框架。尝试aiohttp或Tornado,如果你需要不同步,当你开发的东西连续连接。
如果你开发一些丰富的东西,试试Django。
如果您开发JSON API,请尝试Hug或Sanic。
如果你开发一些简单的东西,可以尝试尝试Flask。
尝试Pyramid,如果你发展丰富但非凡的东西可以尝试尝试Pyramid
由于框架的选择取决于项目的特定需求,因此我们无法挑选出最适合网络开发的Python框架。学习新的东西,并为您的工具箱中的不同任务有不同的工具。
猜你喜欢
- 2025-07-03 pytorch v2.7.0震撼发布!Blackwell GPU支持+编译性能狂飙,AI开发
- 2025-07-03 PyWebView:用 Python 构建桌面应用的神器
- 2025-07-03 最受欢迎 Top 12 Python 开源框架,你都用过吗?
- 2025-07-03 Python Web 框架(pythonweb框架django)
- 2025-07-03 用 Python 和 Pywebview 打造现代可视化 GUI 界面
- 2025-07-03 RabbitMQ架构详解(7大架构原理模型图解)
- 2025-07-03 【Python程序开发系列】使用Flask实现前后端分离(案例)
- 2025-07-03 FastUI:用Python构建高性能React应用,告别JavaScript
- 2025-07-03 UI自动化测试框架:Playwright 官方教程(三)—— 架构与通信机制
- 2025-07-03 Python 失宠!Hugging Face 用 Rust 新写了一个 ML框架,现已低调开源
你 发表评论:
欢迎- 590℃几个Oracle空值处理函数 oracle处理null值的函数
- 581℃Oracle分析函数之Lag和Lead()使用
- 570℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 568℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 562℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 554℃【数据统计分析】详解Oracle分组函数之CUBE
- 540℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 536℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)