Django常用三方库

更新于2017.01.10

首先安利本书《two scoops of django1.8》目前还没有中文版,不过是我看过关于django的书中收获最大的一本。本来有机会和作者面基,可惜我大天朝的签证太难办了,只得作罢。

这里推荐三方库的大部分出自这本书,移除了部分失效或者不维护的库,添加了一些其他库,强烈建议大家阅读原书。

下面的模块有些是django模块,有些则是python模块,可以脱离django直接使用。

话说那些复制到别地方然后标注“原创”的,敢加个本文链接不?手工整理很累的好不?

核心

  1. Django 这个应该不用多说了吧?
  2. Django-model-utils 如果使用类视图的话,这个库提供了很多有用的Field和Mixin,建议关注
  3. Ipdb 断点调试程序,可以说是pdb的加强版。类似于ipython和python的关系。
  4. Pillow 一款python的图形处理库,替代PIL的。
  5. pip 这个也不多说。
  6. Sphinx 为python程序生成文档的。
  7. MkDocs 如果喜欢markdown语法,可以用这个替代Sphinx,建议关注
  8. virtualenv以及virtualenvwrapper 这两个不多说。

异步

  1. celery 异步任务队列,建议关注
  2. flower 配合celery使用,用于监控。
  3. rq 用于处理后台任务的库,基于redis。
  4. django-rq 一个简单的app,配合rq在django使用。
  5. django-background-tasks 一个基于数据库的异步任务队列

数据库

  1. django-db-tools 这个本人没用过,看说明是设置数据库为只读模式的?
  2. psycopg2 用于操作postgresql数据库,类似于mysql-python。
  3. django-redis 链接redis数据库的。

部署

  1. circus 没用过,作者特意说明这个只有大型程序才有必要使用,命令行程序看进程以及套接字信息的。
  2. dj-database-url 没用过,看说明是简化settings中databases配置的。
  3. django-heroku-memcacheify 没用过,文档说这个是为了部署在heroku上的程序方便设置memcache的。
  4. Fabric 神器,尤其是部署集群的时候,建议关注
  5. Invoke 和fabric类似,支持python3。
  6. Supervisor 神器,除了用来部署django程序,可以干很多事情,建议关注

表单

  1. django-crispy-forms 让人更简单优雅的控制表单样式。
  2. django-foppyforms 和上面的可以搭配使用,完全控制表单样式。
  3. django-forms-bootstrap bootstrap样式的表单。
  4. django-forms-builder 可以控制admin的表单样式。
  5. django-attachments 一款通用的附件上传程序。

日志

  1. logutils 加强了原生的logging。
  2. Sentry 一个在线记录异常的网站。
  3. App Enlight 同上。
  4. Newrelic 功能同上,还包含了性能分析等,收费。类似的还有opbeat。

项目模板

  1. cookiecutter-django 很好很强大,修改了原生的django项目结构,这么做的原因请看书中解释,作者的项目,建议关注
  2. Cookiecutter 上面那个基于这个项目,作者妻子的项目。
  3. django-kevin 类似第一个项目,不过生成的是herlku的结构。
  4. django-herokuapp 同上。

REST APIs

  1. django-rest-framework 不多说了,Django最强大的REST框架。
  2. django-jsonview 一个简单的装饰器,把python对象(列表和字典,类实例能不能自动转本人没试过)转换为json格式返回。
  3. django-tastypie 另一个rest框架,没用过,看起来比第一个简单。
  4. django-cors-headers 解决前端跨域调用问题。
  5. django-rest-framework-jwt 为REST框架提供JWT认证。

安全

  1. bleach 一个简单的白名单。
  2. defusedxml 强制使用xml格式?没用过不多说。
  3. django-autoadmin 自动生成admin密码的。
  4. django-admin-honeypot 一个假的管理后台登录界面,并记录登录操作。
  5. django-axes 同上,记录登录失败行为的。
  6. django-ratelimit-backend 登录速度限制,防暴力破解的。
  7. django-passwords 检测密码强度的。
  8. django-secure 这个比较杂,看文档吧还是。

测试

  1. coverage 这个不多说,建议关注
  2. django-coverage-plugin coverage的django插件,可以用来覆盖测试django的模板,建议关注
  3. django-test-plus 增强了默认的TestCase,建议关注
  4. factory_boy 生成测试数据的库,建议关注
  5. model_mommy 同上。
  6. mock  这个已经集成在Python3.4了。
  7. pytest python测试工具,建议关注
  8. pytest-django 这是一个基于pytest的django插件,建议关注
  9. pytest-cov 把pytest和coverage结合的插件。
  10. pytest-xdist 多进程执行测试。
  11. nose 一个单元测试模块。
  12. pytest-sugar 增强了pytest的提示等。
  13. tox 提供了一个命令行工具自动打包、测试、发布程序,建议关注
  14. Django-debug-toolbar 这个有人不知道麼?调式django程序必备,建议关注
  15. Django-debug-panel 配合上面的使用,可以用来调试ajax一类的json响应。

用户注册

  1. django-allauth 提供了常见的注册和认证方式,比如邮件、twitter、facebook、github、google等。社交支持在我大天朝比较鸡肋。
  2. python-social-auth 同上。
  3. django-authtools 自定义用户模型。

视图

  1. django-braces 如果你使用类视图,强烈建议使用这个库,提供了很多有用的mixin类,建议关注
  2. django-extra-views 提供了很多通用类视图,建议关注
  3. django-vanilla-views 这个替换了django提供的通用类视图,使代码更精简,建议关注

时间

  1. python-dateutil 扩展了python自带的datetime模块。
  2. pytz 如果你被时区坑过,建议使用这个库。

杂项

  1. awesome-slugify 这个库有点意思,表面看处理字符串的,但实际上是处理url的。
  2. unicode-slugify 这个和第一个库类似。
  3. django-autoslug 这个和第一个库类似。
  4. dj-stripe stripe是一个国外支付平台,天朝内没大用。
  5. django-compressor 用于压缩css和js。
  6. django-extensions 包括management命令扩展,数据库字段扩展,admin后台扩展等,建议关注
  7. django-haystack 提供统一的 API 允许你使用不同的搜索后端,包括 Solr, Elasticsearch, Whoosh, Xapian 等等。
  8. django-pipeline 压缩css和js,使用cssmin和jsmin包。
  9. django-htmlmin 压缩html代码的。
  10. django-reversion 类似版本控制,可以记录每次数据变化的情况,以及回滚,建议关注
  11. django-environ 简化settings配置的,建议关注
  12. django-watson 跨表全文检索的,建议关注
  13. django-storages-redux 用来存储图片、文件到不同后端的,比如亚马逊s3或者微软的azure。
  14. envdir 和虚拟环境有关,没用过不多说。
  15. flake8 代码格式化的。
  16. pathlib 这个挺有意思,使用面向对象的方法来处理系统路径。
  17. pip-tools 一个pip命令的扩展。
  18. pyyaml 处理yaml格式数据。
  19. requests 神器,用了这个我再也没用过urllib2库了,建议关注
  20. silk 一个在线django性能检查调优工具,建议关注
  21. Unipath 和12类似,面向对象的方式处理路径。
  22. whitenoise 管理静态文件的,建议关注
  23. pandoc 提供了多种文档格式转换,比如markdown to rst等,建议关注