Django 的第三方包

| 分类 programming  | 标签 python  Django  programming  Two Scoops of Django 

Django 项目中的 Requirements 文件中的依赖包一定要指定特定的版本号,如:

Django==1.8
coverage==3.7.1
django-extensions==1.5.2
django-braces==1.4

而你发布的第三方包中,依赖包不能指定特定的版本,版本号要越宽泛越好。例如,当你的依赖指定为 Django==1.72, 但当你的包在 Django 1.8 的项目中使用时,就会出现冲突。

有用的包资源:

核心

Django : Web 框架。

django-debug-toolbar : 显示面板用于调试 Django HTML 视图。

django-model-utils : 很有用的数据模型工具,包含一个时间戳数据模型。

ipdb : IPython pdb。

Pillow : PIL 替代品。

pip : 包安装工具。在 Python 3.4 及以上版本中已内置。

Sphinx : Python 项目的文档工具。

virtualenv : Python 虚拟环境。

virtualenvwrapper : 使得 virtualenv 在 Mac OS X 和 Linux 上更加好用。

virtualenvwrapper-win : 使得 virtualenv 在 Windows 上更加好用。

异步

celery : 分布式任务队列。

flower : 监测和管理 Celery 任务的工具。

rq : RQ 是一个简单轻量级的库,用于创建和处理后台任务。

django-rq : 用于在 Django 中集成 RQ (Redis Queue) 的一个简单应用。

django-background-tasks : 数据库异步任务队列。

数据库

django-db-tools : 对于将网站往返切换到只读模式很有用。

psycopg2 : PostgreSQL 数据库适配器。

部署

circus : 能使你运行和监测多进程和多 Socket 的一个程序。用于 Mozilla,非常复杂,不适合小项目。

dj-database-url : 这个简单的 Django 工具能使你轻松地使用 Heroku 访问数据库。

django-heroku-memcacheify : 为 Heroku 提供简单的 Memcached 配置。

Fabric : 用于远程执行和部署的简单工具。

Invoke : 类似 Fabric, 但它兼容 Python 3。

Paver : 一个创建、发布和部署的脚本工具。

Supervisor : Supervisord 是一个 C/S 系统,它用于监测和控制类 UNIX 系统上的鑫个进程。

表单

django-crispy-forms : 为 Django 表单呈现控件。默认使用 Twitter Bootstrap 组件,但是可替换。

django-floppyforms : 表单项、组件和布局,可与 django-crispy-forms 一起使用。

django-forms-bootstrap : 一个简单的表单过滤器,使用 Twitter Bootstrap 型的 Django 表单中。

django-forms-builders : 一个可重用的 Django 应用,为管理员用户提供在 admin 界面中创建自定义表单的功能。

前端

JSCS : JavaScript 代码风格检查器。

CSScomb : CSS 代码风格格式化工具。

日志

logutils : 为 logging 提供了很有用的 handlers。

Sentry : 开源的异常错误聚合器。

App Enlight : 跟踪项目中的项目和性能问题。

Newrelic : 实时日志和聚合平台。

项目模板

cookiecutter-django

Cookiecutter : 不只针对 Django。是一个用于创建项目和应用模板的命令行工具。它专注、测试充分、文档充实。

django-kevin : 特别针对 Heroku 部署优化的 Django 项目模板。

django-herokuapp : 提供一组工具和项目模板,使 Django 网站易于在 Heroku 上运行。

REST APIs

django-rest-framework : Django REST 包的事实标准。能将数据模型和非数据模型资源导出为 RESTful API。

django-jsonview : 提供一个简单的装饰器,能将 Python 对象转成 JSON 并确保已装饰的视图总能返回 JSON。

django-tastypie : 能将数据模型和非数据模型资源导出为 RESTful API。

安全

bleach : 一个简单基于白名单的 HTML 安全审查工具。

defusedxml : 当需要从外部接收 XML 数据时必须要用的 Python 库。

django-autoadmin : 为 Django 项目的管理员用户自动生成密码。

django-admin-honeypot : 一个假的 Django 管理登录界面,用于通知管理员有关未授权访问的情况。

django-axes : 为 Django 站点记录失败的登录尝试。

django-ratelimit-backend : 在 auth backend 层进行登录速率限定。

django-passwords : 一个可重用的 Django 应用,为验证密码强度提供了验证器和一个表单项。

django-secure : 有助于你采用安全专家推荐的实践对站点进行安全加固。它的大部分功能已包含在 Django 的 SecurityMiddleware 类中。

django-two-factor-auth : 针对 Django 的完整双因子认证。

django-user-sessions : 含一个 user 的 Django 会话。

peep : 只使用已验证的 TLS 来上传至 PYPI,能保护你的信息不被窃取。其它的一些功能也值得一看。

Twine : 只使用已验证的 TLS 来上传至 PYPI,能保护你的信息不被窃取。其它的一些功能也值得一看。

测试

coverage : 检查你的代码有多少已经测试过了。

factory boy : 一个能创建数据模型测试数据的包。

model mommy : 另一个创建数据模型测试数据的包。

mock : 不只针对 Django, 它能使你将系统中的部分组件替换为 mock 对象。该项目将会内置到 Python 3.4 中。

pytest : 一个成熟的全功能 Python 测试工具,在 Python 和 Django 项目中都很有用。

pytest-django : pytest-django 是针对 py.test 的一个插件,它提供的一组工具对 Django 应用和项目的测试很有用。

tox : 一个通用的 virtualenv 管理和命令行测试工具,能在命令行中用一个命令针对多个 Python 版本对项目进行测试。

用户注册

django-allauth : 通用的注册和认证功能。包括电子邮件、Twitter、 Facebook、 GitHub、 Google 等。

python-social-auth : 针对 Twitter、 Facebook、 GitHub、 Google 等进行社交认证和注册。

视图

django-braces : 为 Django CBV 提供了大量的 Mixin。

django-extra-views : 提供大量的额外通用 CBV 以对 Django 进行补充。

django-vanilla-views : 通过简化继承链来简化 Django 的通用 CBV。

时间

python-dateutil : 为 Python datetime 模块提供了强大的扩展功能。

pytz : 将 Olson tz 数据库融入 Python。它允许精确及跨平台的时区计算。它还解决了夏令时的时间问题。

其它

awesome-slugify : 一个灵活的 slugify 函数。

dj-stripe : 使 Django + Stripe 更加容易。

django-compressor : 将链接和内连的 JavaScript 和 CSS 压缩成单个的缓存文件。

django-extensions : 提供 shell plus 管理命令及其它许多工具。

django-haystack : 能与 SOLR、 Elasticsearch 等一起使用的全文检索工具。

django-pipeline : CSS 和 JS 的压缩工具,和 cssmin 与 jsmin 包一起使用。

django-htmlmin : Django 的 HTML minifier。

django-reversion : Django 框架的一个扩展,提供了完整的版本控制功能。

django-watson : 为使用 SQL 数据库的 Django 项目提供全文多表的探索功能的应用。

envdir : Python 版的 aemontools envdir。

flake8 : 使用 PyFlakes, pep8 等其它工具进行代码质量检查。

pathlib : 面向对象的文件系统路径工具,已合并到 Python 3.4。

pip-tools : 一些能使你的 Python 依赖保持更新的工具。

pyyaml : Python 的 YAML 解析器和触发器。

requests : 一个易用的 HTTP 库,用于替换 Python 的 urllib2 库。

silk : Silk 是一个针对 Django 框架的 实时性能分析和检查工具。它在将数据呈现给用户界面之前将 HTTP 请求和数据库查询进行拦截,以便进一步进行分析。

unicode-slugify : Mozilla 支持的一个 slugify,能使用 unicode 字符。

Unipath : os/os.path/shutil 的面向对象的替代器。

参考文献: Two Scoops of Django: Best Practices for Django 1.8


上一篇     下一篇