Django使用UUID作为主键

Django这个框架,如果你在定义模型时没有显式的指定主键,那么它会贴心的送你一个自增的id主键:

python 复制代码
class SomeModel(model.Model):
    # 下面这个 id 字段是不需要写的,django 自动附送
    # id = models.AutoField(primary_key=True)

    ...

这个 id 主键从 1 开始计数,每有一条新的数据则 +1,保证了主键不重复。

通常你用这个自增主键就够了,但是有些情况下用它又不合适。

这时用 UUID 作为主键非常合适。 UUID 是一种全局唯一标识符,通常用32位的字符串来表现,像这样:9cd0c6fa-846e-11ea-8191-94e6f7639b8c ,它可以保证全球范围内的唯一性。

方法是这样:

python 复制代码
class User(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid1, editable=False)

注意:既然这里设置了UUID,那你数据库的类型就要变为varchar类型。

相关推荐
栀寒老醑1 小时前
Python实现的服务器日志监控脚本
开发语言·python
yaoxin5211232 小时前
211. Java 异常 - Java 异常机制总结
java·开发语言·python
Empty_7774 小时前
编程之python基础
开发语言·python
哲Zheᗜe༘7 小时前
了解学习Python编程之python基础
开发语言·python·学习
麦麦大数据8 小时前
F024 RNN+Vue+Flask电影推荐可视化系统 python flask mysql 深度学习 echarts
python·rnn·深度学习·vue·echarts·电影推荐
workflower8 小时前
Fundamentals of Architectural Styles and patterns
开发语言·算法·django·bug·结对编程
Roc-xb8 小时前
ModuleNotFoundError: No module named ‘conda_token‘
开发语言·python·conda
weixin_525936338 小时前
部分Spark SQL编程要点
大数据·python·sql·spark
Xyz996_8 小时前
python编程基础知识
python
人工干智能9 小时前
Python 开发中:`.ipynb`(Jupyter Notebook 文件)和 `.py`(Python 脚本文件)
开发语言·python·jupyter