-
第三方仓库 Python Package Index(PyPI)
-
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