shortuuid简介
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在UUID的算法中,可能会用到诸如网卡MAC地址,IP,主机名,进程ID等信息以保证其独立性。
UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)
shortuuid使用python内置的uuid模块产生标准32位uuid,然后进行base57编码,使用的字符集为数字,字母大小写,然后再除去结果中相近的字符:l, 1, I, O 和 0
基本使用
可以使用shortuuid模块的uuid()
方法快速产生uuid:
|
|
也可以以一个name来产生uuid:
|
|
也可以产生定长的uuid:
|
|
指定pad_length
将会使用字符集中的第一个字符填充为指定长度
获取使用的字符集:
|
|
设置字符集:
|
|
shortuuid会自动去除字符集中重复的字符
encode()
与decode()
|
|
ShortUUID类
当你需要在每个线程中有不用的字符集来产生uuid时,可以使用ShortUUID
类
|
|
当然ShortUUID
类也有这些方法:
- encode()
- decode()
- uuid()
- random()
- get_alphabet()
- set_alphabet()
- encoded_length()