所以我们可以generate a unique id with str(uuid.uuid4()),它有36个字符长。
是否有其他方法生成一个字符更短的唯一ID?
编辑:
如果ID可用作主键,则更好
粒度应大于1毫秒
这段代码可以被分发,所以我们不能假设时间独立。

最佳答案

如果这是用作db中的主键字段,请考虑只使用自动递增整数。
str(uuid.uuid4())是36个字符,但它有四个无用的破折号(-),并且限制为0-9a-f。
32个字符的更好uuid4:

>>> uuid.uuid4().hex
'b327fc1b6a2343e48af311343fc3f5a8'

或者只是b64编码和切片一些铀字节(由你来保证唯一性):
>>> base64.b64encode(os.urandom(32))[:8]
b'iR4hZqs9'

07-24 09:52