Django
如何使用 Django Signal 解耦模块
· ☕ 4 分钟
最近,我负责开发一个重后端的应用。这个应用数据流向复杂,处理逻辑冗余堆积。项目技术栈选择的是 Django + Vuejs。前端使用 Webpack 打包,模块化管理,主要是展示数据。后端涉及的模块多,处理规则多,数据表多,每次涉及之前功能修改时,都消耗大量时间 review 代码。这

如何在 Django 中任意安全获取 request
· ☕ 2 分钟
在 Django 中,request 包含了一次请求的全部信息。后端处理逻辑经常需要用到 request 中的信息。比如, DRF 框架中想要随时能够获取到 request,或者将一些参数全局传递。Django 第三方 App 中有一些工具可以满足要求,但它们并不是安全可靠的。意思是,如果 Django

如何在 Django 中保证并发的数据一致性
· ☕ 3 分钟
前面一部分主要讲乐观锁和悲观锁。锁从数据库层面,保证了并发时的数据一致性。了解锁,有助于对并发解决方案的理解。后面一部分主要讲的是 Django 中,并发场景下,保证数据一致性的解决办法。 1. 关于锁 1.1 乐观锁 乐观锁的出发点是,同一条数据很少会因为并发修改而产

Django 中使用 utf8mb4 支持 emoji 表情
· ☕ 2 分钟
1. 什么是 utf8 理论上,utf8 使用 1-6 个字符, 实际上,最新的 utf8 规范只使用一到四个字节,最大能编码21位,正好能够表示所有的 17个 Unicode 平面。 2. 什么是 utf8mb4 utf8mb4 是 utf8 的超集,理论上原来使用 utf8,然后将字符集修改为 utf8mb4,也不会对已有的utf8 编码读

Django 开发中常用命令
· ☕ 1 分钟
创建 Django 工程 1 django-admin startproject your_project_name 创建应用 1 2 3 django-admin.py startapp your_app_name # 或者 python manage.py startapp your_app_name python manage.py 和 django-admin 的功能基本一样。不同的是 python manage.py 还设置了 DJANGO_SETTINGS_MODULE 环境变量、将项目的路径加入了 sys.path 中。建议除了创建项目使用 django-admin,其他情况使用 python manage.py。 初始化数据 1 python manage.py migrate 创建缓存表