Python中推荐10个Django开发过程中比较好用的第三方包

花了 2 个月左右的时间来开发微信端的便民服务乐盟同城系统,现在是有了基本的功能雏形。不过,对于一个完善的系统,还有很多需要做的事情。在开发的过程中,也新发现了一些比较好用的第三方工具包,减少了不少重复性工作。

这里推荐给大家,希望你在用到的时候也有眼前一亮的感觉。

  1. wechatpy - 微信方面开发

对于基于公众号开发,这个库是我觉得目前功能最全、也是一直在持续更新的库。令我眼前一亮的是:竟然公众号开放平台代服务的一些功能也融入了进来。做微信方面开发,不要错过

  1. xmltodict - xml 转字典功能

由于在微信的一些回调接口中,post 的数据是 xml 类型。利用该库,可以很方便转成 dict 类型。

  1. django-rq - 简单的消息队列

非常轻量的消息队列服务,对于不需要复杂功能的需求看 3 分钟文档直接上手

  1. restless - RESTFUL 框架

这个框架不只是针对 django 的,还可以对接 flask 等一些其他框架,轻量简洁。也比较灵活

  1. django-constance - 常量管理

有时我们会在 django 的 settings 中设置一些常量,但是有可能会进行变更。利用这个包,只需简单的配置就可以自动生成 admin 管理后台 可以修改

  1. django-braces - 提供了 django 便捷的 Mixin

登录判断、权限判断、组别判断等方便的 Mixin,还有一些 Form 方面的 Mixin。比如对于 csrfexempt 我们一般要重写 dispatch 方法。这个包里面提供了相关类,直接继承即可。

  1. model-mommy - django 单元测试

在进行单元测试时,制作测试数据是个比较麻烦的事情。利用这个包可以很方便灵活的提供 model 测试数据。

  1. django-crequest - 全局 request

在 django 开发时,view 中都可以方便的获取 request,但是在一些公共库中就获取不到了。该包提供了全局获取 request 的方法。

  1. django-qurl-templatetag - url 参数修改

在进行 url 操作处理时,经常遇到的一个问题就是。我们要对一个字符串 url 中的参数就行修改、添加移除等。这个包简直是处理神器,而且在 html 中也提供了对应的处理方法。

  1. django-settings-export - 模板中获取 settings 配置

有时,我们要在 html 模板中获取 settings 的某个配置,通过该包简单配置即可。

程序猿、工程师精彩分享

微信号:studypython

欢迎关注公众号 "人生苦短我用 Python"



Python中推荐10个Django开发过程中比较好用的第三方包

51 回复

好问题!Django的生态确实丰富,这里我挑10个自己项目里高频使用、能实实在在提升开发效率和代码质量的包,按用途分类推荐给你。


1. 开发与调试 (Dev & Debug)

  • django-debug-toolbar: 调试神器。直接在页面上展示SQL查询、请求头、模板、缓存等详细信息,定位性能问题和逻辑错误必备。
  • django-extensions: 瑞士军刀。提供一堆超实用的管理命令,比如 runserver_plus (带Werkzeug调试器)、shell_plus (自动导入所有模型)、show_urls 等,极大提升命令行操作体验。

2. 数据处理与验证 (Data & Validation)

  • django-filter: 构建复杂查询过滤器的标准选择。配合DRF或普通视图,几行代码就能实现强大的搜索、筛选功能,URL参数驱动,非常灵活。
  • django-crispy-forms: 优雅地渲染Django表单。告别手写一堆{{ form.as_p }},它能帮你用Bootstrap等前端框架的样式快速生成美观、一致的表单布局。

3. 认证与权限 (Auth & Permissions)

  • django-allauth: 一站式社交认证解决方案。集成邮箱/密码注册、第三方登录(Google, GitHub, Facebook等)、邮箱验证流程,功能全面,文档也好。
  • django-guardian: 对象级权限控制。Django自带的权限系统到模型级别,这个包可以细化到单个模型实例(比如“用户A只能编辑他自己创建的文章”),对于复杂权限系统是刚需。

4. 异步与任务 (Async & Tasks)

  • celery: 分布式任务队列的事实标准。处理耗时操作(发邮件、处理图片、跑报表)异步执行,不阻塞请求响应。搭配 django-celery-results 存储结果。
  • channels: 让Django支持WebSockets、协议等实时功能。如果你需要聊天室、实时通知或任何需要双向通信的特性,这是官方推荐的选择。

5. 其他实用工具 (Utilities)

  • python-decouple: 管理配置分离。严格将设置参数(SECRET_KEY, DB密码等)从代码中分离到环境变量或 .env 文件,安全又方便不同环境部署。
  • django-storages: 统一存储后端。用这个包可以轻松把静态文件、用户上传的媒体文件存到云服务(AWS S3, Google Cloud Storage, Azure等),扩展性极强。

总结建议:根据项目阶段和需求,从调试、表单、认证、异步这几个痛点领域优先选用。

我也 mark 一下

好吧,drf 确实不用提

太重

谢谢分享

公众号已关注

django 配上各种 middleware 真是 web 开发瑞士军刀。

mark yixia

我也推荐几个吧

- django-allauth
第三方账号登录支持
- django-haystack
搜索
- bootstrap-admin
bootstrap 风格的后台
- django-imagekit
图片处理

我也推荐几个:
django-silk 性能分析
django-sql-explorer 可以做些数据导出
djmail 发送 html 格式的邮件很方便
django-q 任务队列 ,支持默认的 orm 方式

棒棒哒

mark 一下。

mark 一下

mark 一下

没人用 restframework,jwt 跟 cors-headers?

jwt 是好东西

mk
放 git 啊 大家 star 一波~

战略性 mark

退蟒三年了。。

有意思 mark

我也 mark 一下

mark 一下,方便查看

回到顶部