django - 如何在 Python 中创建一个 8 位的唯一 ID?

标签 django python-3.x uuid

我正在制作一个用于练习的网络应用程序,它是一个工作门户。我想为最终用户可见的作业创建 8 位唯一 ID。 Id 可以有数字和字母。模式需要是 8 位数字,没有连字符或破折号,如 XXXXXXXX .

我知道python中有UUID东西。但他们似乎以特定格式生成 id。有没有办法以我需要的格式获取 ID?如果没有,请有人指导我如何去做吗?

我知道有一个类似的帖子 How can I generate a unique ID in Python? ;但它没有具体回答我的问题。它没有回答我想要达到的目标。

提前致谢。

最佳答案

那么你可以使用 uuid.hex

import uuid
uuid.uuid4().hex[:8]  # Might reduce uniqueness because of slicing

或者Django也有辅助功能get_random_string它接受两个参数 length (默认 = 12)和 allowed_chars :
from django.utils.crypto import get_random_string
get_random_string(8)

关于django - 如何在 Python 中创建一个 8 位的唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42703059/

相关文章:

python - 具有相同或相似字段的 Django 模型

python - 访问 heapq 的索引和长度?

python - 如何获取新定义的变量

python - 查找元组对列表中的第一个元素

database-design - 使用 uuid 作为主键和/或代理键?

linux - 如何在给定路径的情况下获取文件系统的uuid?

python - 限制每组 n 个结果 - Django queryset

python - Django环境下如何执行外部脚本

mysql - 在 MySql 数据库中将 primaryKey 序列化为 UUID - 不工作

python - 如何在 Django 中获取模型实例保存到的数据库?