Python Web 开发中常用的第三方库

在这里我将介绍一些 Python Web 开发中常用的第三方库。基本适用于 Django 以外的 Web 框架 (Pyramid, Flask, Tornado, Web.py, Bottle 等).

ORM

SQLAlchemy, 在 ORM 方面,首选 SQLAlchemy,没有之一!

支持 SQLite, PostgreSQL, MySQL, Oracle, MS-SQL, Firebird, Sybase 等主流关系数据库系统

支持的 Python 环境有 Python2、Python3,PyPy 以及 Jython。

主要的特性请移步 Key Features of SQLAlchemy

推荐和数据库迁移工具 Alemic 搭配使用

MongoEngine, 如果你用 MongoDB,推荐 MongoEngine.

Template Engine

在模板引擎方便选择也是比较多, 有 Chameleon、Jinja2、Mako 等可供选择,用过 Chameleon 和 Jinja2,性能都非常好.

Form Engine

WTForms,推荐!

Cache Engine & Session Store

Beaker 缓存和 Session 管理首选 Beaker, 没有之一! 可以搭配文件、dbm、memcached、内存、数据库、NoSQL 等作为存储后端。如果你用 Pyramid 作为 Web 框架,那么可以直接使用 pyramid_beaker.

环境构建

buildout 很强大,参考 用 Buildout 来构建 Python 项目

virtualenv 这个大家应该都用过,简单易用

任务队列

Celery (芹菜)一个分布式异步任务队列, 很强大!

RQ 这是一个轻量级的任务队列,基于 Redis, 可以尝试一下。

WebServer

Gunicorn , 推荐!

uWSGI

mod_wsgi,搭配 Apache 一起使用

工具

Fabric, 可以通过它完成自动化部署和常规的运维等工作。《Fabric - 让部署变得简单》_PPT

Supervisor 一个强大的进程管理工具,用来管理各种服务(比如 Gunicorn、Celery 等),服务挂掉时 Supervisor 会帮自动重启服务。

导出报表数据

Tablib,这个挺好用,支持导出 Excel, JSON, YAML, HTML, TSV, CSV 格式数据, 我创建了一个 Pyramid 插件可以集成到 Pyramid 项目中使用 pyramid_tablib

导出 PDF 有 reportlab、PyPDF2

第三方身份验证

velruse, 支持各大网站的身份验证, 国内部分我已经加入了 Weibo、Douban、QQ、Taobao、Renren,并 merge 到主版本库中。欢迎使用!

Helper

webhelpers, 提供了一系列实用函数