Django
如何在 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 创建缓存表

Django Model 与 E-R 图
· ☕ 3 分钟
在需求逐步确认的过程中,系统的 DB 模型也逐步确认。有时使用,MySQL Workbench 这类工具绘制 E-R 图,然后生成 MySQL 数据库表,这时就需要反向生成 Django Models;有时直接写 Django Models ,但是又需要查看 E-R 图。本文主要解决上面两个需求,实现 Django Models 与 E-R 图之间的转换。 1. 生成 model 的