如何在Python中创建8位唯一ID?

Ryu*_*der 6 django uuid python-3.x

我正在为练习制作一个Web应用程序,它是一个工作门户.我想为作业创建8位唯一ID,这对最终用户可见.ID可以有数字和字母.模式必须是8位数字,没有连字符或破折号,如XXXXXXXX.

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

我知道有一个类似的线程如何在Python中生成一个唯一的ID?; 但它没有具体回答我的问题.它没有回答我想要实现的目标.

提前致谢.

Aam*_*nan 13

那么你可以使用uuid.hex

import uuid
uuid.uuid4().hex[:8]
Run Code Online (Sandbox Code Playgroud)

或者Django也有辅助函数get_random_string,它接受两个参数length (默认值= 12)allowed_chars:

from django.utils.crypto import get_random_string
get_random_string(8).lower()
Run Code Online (Sandbox Code Playgroud)


Rol*_*ith 5

使用os.urandom的数据,并base64对其进行编码;

In [1]: import os

In [2]: import base64

In [3]: base64.b64encode(os.urandom(6)).decode('ascii')
Out[3]: '6Amtry80'
Run Code Online (Sandbox Code Playgroud)