从 uuid python 和 django 获取 8 位随机字母数字
get 8 digit random alphanumeric from uuid python and django
基本上在 python 中有一些方法可以获得固定数字的随机数,比如使用 random
模块
但我在这里使用 python 的 uuid 模块来生成如下所示的随机字符串
id = uuid.uuid4()
print id
UUID('decbb83f-9c35-4c37-a3d9-69e89bd8dd73')
但我只想要上述随机 UUID 对象中的 8 位数字
我们可以做类似
print str(id).split('-')[0]
这里不是 UUID 对象而是字符串
我将在 django UUID 字段中使用这个 8 位随机 UUID(对象)编号,如下所示
uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
那么如何只获取 8 位字母数字随机 UUID 对象?
这是不可能的,因为 UUID 是 16 字节的,但您可以生成 8 个字符的唯一字符串。
如果你查看 Django 模型字段中的 UUIDField class,最大长度设置为 32.You 没有选项在 **kwargs[=11= 中指定 max_length ]
def __init__(self, verbose_name=None, **kwargs):
kwargs['max_length'] = 32
super(UUIDField, self).__init__(verbose_name, **kwargs)
基本上在 python 中有一些方法可以获得固定数字的随机数,比如使用 random
模块
但我在这里使用 python 的 uuid 模块来生成如下所示的随机字符串
id = uuid.uuid4()
print id
UUID('decbb83f-9c35-4c37-a3d9-69e89bd8dd73')
但我只想要上述随机 UUID 对象中的 8 位数字
我们可以做类似
print str(id).split('-')[0]
这里不是 UUID 对象而是字符串
我将在 django UUID 字段中使用这个 8 位随机 UUID(对象)编号,如下所示
uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False)
那么如何只获取 8 位字母数字随机 UUID 对象?
这是不可能的,因为 UUID 是 16 字节的,但您可以生成 8 个字符的唯一字符串。
如果你查看 Django 模型字段中的 UUIDField class,最大长度设置为 32.You 没有选项在 **kwargs[=11= 中指定 max_length ]
def __init__(self, verbose_name=None, **kwargs):
kwargs['max_length'] = 32
super(UUIDField, self).__init__(verbose_name, **kwargs)