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类型。

相关推荐
Q_Q51100828514 分钟前
python的驾校培训预约管理系统
开发语言·python·django·flask·node.js·php
ApeAssistant19 分钟前
2025,Python连Oracle最新教程
python·oracle
Dxy123931021636 分钟前
Python正则表达式使用指南:从基础到实战
开发语言·python·正则表达式
一百天成为python专家1 小时前
ndarray的创建(小白五分钟从入门到精通)
python·机器学习·numpy
Blossom.1182 小时前
基于深度学习的医学图像分析:使用PixelRNN实现医学图像超分辨率
c语言·人工智能·python·深度学习·yolo·目标检测·机器学习
都叫我大帅哥2 小时前
深度学习中的"火眼金睛":卷积神经网络(CNN)终极指南
python·深度学习
都叫我大帅哥2 小时前
幽默深度指南:LangChain中的RunnableParallel - 让AI任务像交响乐团般协同工作
python·langchain·ai编程
2025年一定要上岸2 小时前
【Django】-9- 单元测试和集成测试(上)
单元测试·django·集成测试
liliangcsdn2 小时前
python 12 install jupyter时zmq.h或libzmq报错处理
ide·python·jupyter
_Orch1d2 小时前
初识无监督学习-聚类算法中的K-Means算法,从原理公式到简单代码实现再到算法优化
python·学习·算法·机器学习·numpy·kmeans·聚类