写在前面
关于 DRF 的文章写了也有一段时间了,功能上也都有涉及到。今天就对这些天写的文章做一个总结,总结技术的同时也总结一下工作。
项目目录
项目目录按照入门顺序已排序,希望这十篇文章,每一篇都能带给你灵感与帮助。
- Django REST framework 入门
- Django REST framework 登录之JWT
- Django REST framework 登录之实战
- Django REST framework 全文搜索实战
- Django REST framework 代码风格实战
- Django REST framework 文档、日志
- Django REST framework 异常处理
- Django REST framework 限流
- Django REST framework 部署实战
- Django REST framework Docker 部署
实战分享
代码仓库详情见: Github 。
1. 关于技术选型
关于 Python 的 Web 框架有许多,比较流行的框架有 Django、Flask、Tornado,随着 python社区日益壮大发展,近两年也涌现出很多优秀的 web 框架,具体可以参考我 Python异步框架 。
Django 的优势我在入门的文章中有提到,Django 有着丰富的周边生态以及较为全面的文档支持。这一点优势其实 Flask 也有,不过 Flask 相对于 Django 来说各有千秋。总结来说就是 Django 大而全,定制化的能力较弱,功能只需要按照官方文档配置;Flask 小而精,有着丰富的第三方插件支持,第三方功能需要自行安装配置。
这里选择 Django 的原因就是因为,懒。没有太多的时间做过多的配置,本着拿来主义的原则。上手就是一通开发、测试、迭代,就上线了。一天一个小版本,一周一个迭代,一个月一次重构。
2. 关于数据库
Django 支持多种关系型数据库 PostgreSQL、SQLite、MySQL、Oracl等。一般建议自己学习就 SQLite,不需要在数据库上花太多的时间。其他情况根据公司技术做选择就行。
这里需要注意的是默认的 migrate 命令,只能在开发环境使用。生产环境应该使用 SQL 操作数据库,一来避免不可预见的风险,二来更符合开发规范。
默认的 migrate 命令,只能在开发环境使用。
默认的 migrate 命令,只能在开发环境使用。
默认的 migrate 命令,只能在开发环境使用。
3. 关于 Django Admin
建议一定要使用 Admin 的页面,因为它的使用会大大减少线上上线之后 SQL 提交的次数。对开放人员极其友好,但是超级管理员的权限只能赋予少部分人员(这玩意太强大)。
建议可以定制一些命令行工具,比如一些在开发环境用到的脚本,初始化数据库、导出数据的脚本、数据库差异等工具,这样可以使你的开发效率成倍提升
4. 关于代码仓库
关于整个 DRF 专栏的项目代码已经整理好放在我的 Github 。欢迎有需要的小伙伴 STAR & FORK。 当然如果有哪里写的不好写的不正确的,也欢迎小伙伴指证,我会及时修正。
5. 关于 DRF 其他内容
这里关于 DRF 的知识点,以及作为一个开框架来说,基本上是够用的。有关于 ViewSet Serializer Filter
的功能因为会根据具体业务有着不同的使用方式,所以这里并没有深入讲解,需要有需求的小伙伴,在使用的时候结合 官方文档使用。
当然如果你有好的功能点想让我继续更新,也欢迎沟通交流。
6. 其他你可能会用到的技术
-
Celery Python开发的分布式任务调度模块。
工作场景有定时任务、异步任务调度等。在 Django 中可以直接使用 django-celery ,它为我们封装了所有关于 Celery 的基本功能与操作。
-
Redis 基于内存实现的高性能非关系型数据库。
一般有以下的业务场景:
- 缓存 对热数据进行缓存,减轻数据压力
- 队列 配合 Celery 实现消息的消费监控等功能
- 分布式锁 基于 SETNX 命令的原子性操作实现解决资源竞争的问题
Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,可以用来作为数据库、缓存和消息队列。
项目推荐
推荐几款热门开源的 Django 项目,供大家学习研究