Python 生成 UUID 主要用标准库 uuid 模块,最常用 uuid.uuid4() 生成高安全性随机 UUID;还支持 uuid1(时间+MAC)、uuid3/uuid5(哈希确定性 ID);可转字符串、去横线、校验还原,勿手动拼接。

Python 生成 UUID 很简单,主要用标准库 uuid 模块,无需安装额外包。
使用 uuid4() 生成随机 UUID
最常用的是 uuid.uuid4(),它基于随机数生成,安全性高、碰撞概率极低,适合大多数场景(如数据库主键、会话 ID)。
- 返回的是
uuid.UUID对象,可直接使用或转为字符串 - 调用时不需要参数,每次结果都不同
示例:
import uuiduid = uuid.uuid4()
print(uid) # e.g. 550e8400-e29b-41d4-a716-446655440000
print(str(uid)) # 同上,字符串形式
print(uid.hex) # 无横线的纯十六进制字符串:550e8400e29b41d4a716446655440000
其他常用 UUID 版本
根据需求可选不同生成方式:
这是一套由淘掌门(taozhangmen.net)衍生出来的一个拍拍客系统!这套程序也继承了淘掌门的特点:永久免费开源!无任何时间限制、功能限制、域名限制。 程序相对于淘掌门原型,已去除返利、会员系统、文章系统等。 如果需要文章,可单独下载其他的文章系统,做子目录,效果可能会更好。 程序安装过程与淘掌门相同: 下载上传到空间,执行 你的网址/install.php 安装完成后,登陆后台修改拍拍AP
立即学习“Python免费学习笔记(深入)”;
-
uuid.uuid1():基于时间戳 + 主机 MAC 地址,唯一性强但可能暴露生成时间和机器信息 -
uuid.uuid3(namespace, name):用 MD5 哈希生成确定性 UUID,相同命名空间和名字总得同一结果(适合从字符串稳定派生 ID) -
uuid.uuid5(namespace, name):类似 uuid3,但用 SHA-1,更安全,推荐用于需确定性的场景
示例(uuid5):
import uuidns = uuid.NAMESPACE_DNS
uid = uuid.uuid5(ns, "example.com")
print(uid) # 每次运行结果固定
常见实用技巧
- 想省略横线?用
uid.hex或str(uid).replace("-", "") - 存数据库前常转成字符串:
str(uuid.uuid4()) - 需要带版本标识?
uid.version返回整数(如 4),uid.variant查变体类型 - 从字符串还原 UUID 对象:
uuid.UUID("550e8400-e29b-41d4-a716-446655440000"),自动校验格式
不推荐的做法
避免手动拼接或用 random + 字符串模拟 UUID——不符合标准、无版本信息、无法被其他系统识别,也失去 UUID 库内置的校验和兼容性保障。










