浅谈Python Web 框架:Django, Twisted, Tornado, Flask, Cyclone 和 Pyramid
Django 是一个高级的 Python Web 框架,支持快速开发,简洁、实用的设计。如果你正在建一个和电子商务网站相似的应用,那你应该选择用 Django 框架。它能使你快速完成工作,也不必担心太多的技术选择。它能提供从模版引擎到 ORM 所需的一切东西。用 Django 构建你的app 的时候,你必须要遵循 Django 的方式,这点像极了 Ruby on Rails 的 Rails 框架。有些人会觉得这样有点不爽,但在我看来这是极好的,毕竟我坚信:“约定优于机制”。相对于所有其他的库,Django 框架有最强的社区,这意味着可以轻松获得帮助。
Flask 是基于 Werkzeug,Jinja 2 的 Python 轻量级框架(microframework)。注意——“microframework” 里的 “micro” 可能会产生误解。轻量级不意味着 Flask 是一个不成熟、不靠谱的库。它表示 Flask 的核心就是非常非常简单的。不像 Django 框架,它不会给你带来技术选择上的问题,你可以自由选择你喜欢的任何模版引擎或 ORM。即使它默认配备了 Jinja 模板引擎,你也随时可以自由选择。 在我看来,用 Flask 来编写 API 服务(RESTful rervices)是再好不过的。
Twisted 是用 Python 实现的基于事件驱动的网络引擎框架。它是一个高性能的引擎,其快速的主要原因是一个被称为 deferred 的 object,Twisted 是建立在 deferred object 之上。对于不了解 deferred object 的人来说,deferred object 是通过异步架构实现的机制。Twisted 是很快速的,但是不适合编写常规的 WebApps。如果你想做一些底层网络的东西,Twisted 是你的好帮手。
Tornado 是一个 Python Web 框架和异步网络库,最初是由 FriendFeed 开发的。Tornado 采用非阻塞网络 I / O 模型,可以处理数以千计的网络连接,这意味着对于 long polling 、WebSockets 和其他需要长时间实时连接的 apps 来说,Tornado 是一个理想的 Web 框架。Tornado 介于 Django 和 Flask 之间。如果你想要用 Django 或 Flask 写一些东西,但你想要一个更好的性能,你应该选择用 Tornado 框架。配合上合理的架构,它能很好的处理 C10K 问题。
Cyclone 是用 Python 编写的一款异步非阻塞的轻量级 Web Server 框架。它实现了 Tornado的 API,底层实现是基于 Twisted Protocol 的。现在,如果你想要 Twisted 的性能和易于编写常规的 webapps,那么请选择 Cyclone。相对于 Tornado 框架,我更喜欢 Cyclone。它有一个非常类似于 Tornado 的 API,实际上,它是 Tornado 的一个 fork 分支。但是问题就是它拥有的社区相对较小。Alexandre Fiori 是主要代码贡献者。
Pyramid 是一个通用的,开源的 Python web 应用开发框架。其主要目标就是让 Python 开发人员更轻松的开发 web 应用程序。我没有用过 Pyramid 框架,但是我看过它的文档。据我了解,Pyramind 和 Flask 很相似,我认为可以用 Flask 框架的地方也可以用 Pyramid 框架,反之亦然。
原文地址:dhilipsiva
浅谈Python Web 框架:Django, Twisted, Tornado, Flask, Cyclone 和 Pyramid的更多相关文章
- 浅谈Python web框架
一.Python web框架 Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全 ...
- [转]浅谈Python web框架
说到web framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全列表见:http://wi ...
- 浅谈python web框架django2.x
1.Django简介 Python下有多款不同的 Web 框架,Django是最有代表性的一种.许多成功的网站和APP都基于Django. Django是一个开源的Web应用框架,由Python写成. ...
- 浅谈python web框架中的orm设计
看了一下廖雪峰的那个web框架,其实就是封装了web.py,请求使用异步并将aiomysql做为MySQL数据库提供了异步IO的驱动,前端部分则整合了jinja.其中最难的应该是orm部分了. 下面是 ...
- 浅谈Python Web的五大框架
说到Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界.各种micro-framework.framework不可胜数. 尽管还有一大脚本语言PHP也有 ...
- python web框架 django wsgi 理论
django wsgi python有个自带的wsgi模块 可以写自定义web框架 用wsgi在内部创建socket对象就可以了 自己只写处理函数就可以了django只是web框架 他也不负责写soc ...
- python web框架 Django进阶
django 进阶 基础中,一些操作都是手动创建连接的非主流操作,这样显得太low,当然也是为了熟悉这个框架! 实际中,django自带连接数据库和创建app的机制,同时还有更完善的路由系统机制.既然 ...
- python web框架(bottle,flask,tornado)
Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. pip i ...
- python web框架Django入门
Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...
随机推荐
- GraphicsMagick在centos环境的安装
一.需要安装包libpng-1.6.2rc02.tar.gz,libjpeg-6b.tar.gz,GraphicsMagick-1.3.18.tar.gz,GraphicsMagick-1.3.18最 ...
- HDU_1517_博弈(巧妙规律)
A Multiplication Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- C# 共享页调用css
@RenderSection("Styles", required: false) @section Styles{ }
- Apex语言(八)类和对象
1.类和对象 一切皆对象,是客观存在的万物,有标识.属性和行为.一个人,一台电脑,一辆轿车都是对象 类是创建对象的模板或蓝图,是对象的抽象,是对象的类型. 一个对象是一个类的一个实例,是一个类的变量. ...
- Hadoop分布式文件系统架构部署
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wgkgood.blog.51cto.com/1192594/1332340 前言 ...
- Java接口和Java抽象类的认识
在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...
- Android LinearLayout整个布局设置不可点击
1,activity的xml布局(布局中有个Button按钮,点击按钮弹出一个popupwindow ) <?xml version="1.0" encoding=" ...
- BZOJ 4712: 洪水 挖坑待补
Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...
- 【微软2017年预科生计划在线编程笔试第二场 A】Queen Attack
[题目链接]:http://hihocoder.com/problemset/problem/1497 [题意] 给你n个皇后; 然后问你其中能够互相攻击到的皇后的对数; 皇后的攻击可以穿透; [题解 ...
- 框架统一出参数DTO格式
这个可以没必要定义. 每个接口返回自己的数据格式就好