框架¶
广义地说,Web框架包含一系列库和一个主要的处理器(handler),这样您就能够构建自己的代码来实现Web应用
(比如说一个交互式的网站)。大多数web框架包含模式和工具,至少实现以下功能:
URL路由(URL Routing)
将输入的HTTP请求匹配到特定的Python代码用来调用
请求和响应对象(Request and Response Objects)
封装来自或发送给用户浏览器的信息
模板引擎(Template Engine)
能够将实现应用的Python代码逻辑和其要产生输出的HTML(或其他)分离开
Web服务器开发(Development Web Server)
在开发机上运行HTTP服务器,从而快速开发;当文件更新时自动更新服务端代码。
Django¶
Django 是一个功能齐备的web应用框架。它是创建面向内容网站的极佳选择。
通过提供众多工具和模式,Django使得快速构建复杂的、有数据库支持的web应用成为可能,
同时鼓励使用它作为编写代码的最佳实践。
Django拥有非常庞大和活跃的社区。此外,许多预构建的 可重用模块
可以原样合并到新工程中,或者定制成符合需求的样子。
在 美国 、 欧洲 和
Australia 均有每年度的Django会议。
如今大部分新的Python web应用都是用Django构建的。
Flask¶
Flask 是一款针对Python的“微型框架”,它是构建更小应用、API和web服务的极佳选择。
使用Flask构建应用,除了一些函数附上路由,它和写标准Python模块很相似。它真的很赞。
Flask不会提供一切您可能需要的内容,而是实现了web应用框架中最常用的核心组件,比如说URL路由、请求和响应对象和模板等。
作为Flask的用户,由您来决定选择和集成其他您可能用到的组件。比如说数据库访问或者表单生成和验证就不是Flask内置的功能。
这挺好的,因为很多web应用并不需要这些特性。
对于那些需要的,有许多可用的 扩展 或许符合您的需求。
Flask是任何不适用Django的Python web应用的默认选择。
Falcon¶
当您的目标是构建快速、可扩展的REST风格API微服务时, Falcon 是个不错的选择。
这是一个可靠的、高性能的Python Web框架,用于构建大规模应用后端和微服务。Falcon鼓励REST架构风格的
URI到资源的映射,以花费尽可能少的精力同时又保持高效。
Falcon重点关注四个方面:速度、可靠性、灵活性和可调试性。它通过"响应者(responder)"
(诸如 on_get()、 on_put() 等)来实现HTTP。这些响应者接收直接的请求,以及响应对象。
Tornado¶
Tornado 是一个面向Python的异步web框架,它有自己的事件。
这就使得它,举个例子,可以原生地支持WebSockets。编写良好的Tornado应用具有卓越的性能特性。
除非您认为自己需要它,我并不建议您使用Tornado。
Pyramid¶
Pyramid 是一个非常灵活的框架,重点关注模块化。 它内置少量库(“电池”),
并鼓励用户扩展其基本功能。它提供一组cookiecutter模板,帮助用户生成新项目。Pyramid驱动了Python基础架构中
最重要部分之一—— PyPI。
Pyramid不像Django和Flask,并没有庞大的用户基数。它一个有能力的框架,但如今新Python web 应用程序
并没有十分青睐它。
Masonite¶
Masonite 是一个现代的,以开发人员为中心的“功能齐备”的网络框架。
Masonite 框架遵循 MVC(Model-View-Controller,模型-视图-控制器)架构模式,受到 Rails 和 Laravel 等框架的极大启发,
因此如果您是从 Ruby 或 PHP 背景来到 Python,那么您将感到宾至如归!
Masonite 提供了许多开箱即用的功能,包括一个功能强大的具有自动解析依赖注入IOC容器、craft 命令行工具和 Active Record 模式的 Orator ORM。
Masonite 非常适合初学者或经验丰富的开发人员。从安装到部署都相当快速和容易。只需尝试一次,你就会爱上它。