python生成并处理uuid的实现方式
UUID(Universally Unique Identifier)是通用唯一识别码,在许多领域用作标识,比如我们常用的数据库也可以用它来作为主键,原理上它是可以对任何东西进行唯一的编码的。
作为新手一看到类似varchar(40)这样的主键就觉得有点蒙圈了,字符串型也不能自增啊,这里就应该应用UUID了。
数据库一般都有自己的办法生成UUID,但虽然可以用,但这玩意考虑到可读性和有点坑的长度还是尽量不要用这玩意做主键・・・咳,有点跑题・・・
下面就简单说明一下python是如何生成UUID的:
python有一个模块叫做uuid,导入它就可以使用它的四个方法了。注意这四个方法依次是uuid1(),uuid3(),uuid4(),uuid5(),
然而并没有uuid2()。
# -*- coding:utf-8 -*- import uuid print uuid.uuid1() #bf1dfacf-67d8-11e8-9a23-408d5c985711 print uuid.uuid3(uuid.NAMESPACE_DNS, 'yuanlin') #ddb366f5-d4bc-3a20-ac68-e13c0560058f print uuid.uuid4() #144d622b-e83a-40ea-8ca1-66af8a86261c print uuid.uuid5(uuid.NAMESPACE_DNS, 'yuanlin') #4a47c18d-037a-5df6-9e12-20b643c334d3
乍一看全都是36个字符,那么他们到底有什么不同呢,下面一一分析。
uuid1():这个是根据当前的时间戳和MAC地址生成的,最后的12个字符408d5c985711对应的就是MAC地址,因为是MAC地址,那么唯一性应该不用说了。但是生成后暴露了MAC地址这就很不好了。
uuid3():里面的namespace和具体的字符串都是我们指定的,然后呢・・・应该是通过MD5生成的,这个我们也很少用到,莫名其妙的感觉。
uuid4():这是基于随机数的uuid,既然是随机就有可能真的遇到相同的,但这就像中奖似的,几率超小,因为是随机而且使用还方便,所以使用这个的还是比较多的。
uuid5():这个看起来和uuid3()貌似并没有什么不同,写法一样,也是由用户来指定namespace和字符串,不过这里用的散列并不是MD5,而是SHA1.
下面再来说一下简单的处理,UUID中间的'-'是个比较奇怪的字符,那么应该去掉它,这其实超简单:
uid = str(uuid.uuid4()) suid = ''.join(uid.split('-'))
补充拓展:python生成uuid,并去掉中间的'-'
UUID(Universally Unique Identifier)是通用唯一识别码,是软件建构的标准,号称可以对任何一种东西进行唯一的编码。下面来看一下python中怎么生成uuid编码并去除其中间的符号‘-'。
import uuid s_uuid=str(uuid.uuid4()) print s_uuid l_uuid=s_uuid.split('-') s_uuid=''.join(l_uuid) print s_uuid
第一次print出的s_uuid是
4717cf79-1a64-4156-a3e8-883f1b76210d
第二次print出的s_uuid是
4717cf791a644156a3e8883f1b76210d
以上这篇python生成并处理uuid的实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
- python处理文本文件实现生成指定格式文件的方法
- 详解python实现数据归一化处理的方式:(0,1)标准化
- python处理文本文件实现生成指定格式文件的方法
- Python四钟方式来实现“一次处理一个字符的方式处理字符串”
- python处理文本文件实现生成指定格式文件的方法
- python处理文本文件实现生成指定格式文件的方法
- cxfreeze打包python程序的方法说明(生成安装包,实现桌面快捷方式、删除快捷方式)
- python已协程方式处理任务实现过程
- 信号生成及DFT的python实现方式
- python实现图片二值化及灰度处理方式
- python处理文本文件实现生成指定格式文件的方法
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- 一个UUID生成算法的C语言实现 --- WIN32版本
- JAVA实现图片处理缩略图-三种开源实现方式
- 使用UI Automation实现自动化测试--5 (Winfrom和WPF中弹出和关闭对话框的不同处理方式)
- 生成大量随机字符串不同实现方式的效率对比
- python 元类型编程, 单例模式SingleTon的一种实现方式
- 生成大量随机字符串不同实现方式的效率对比
- python中package机制的两种实现方式
- Java事件处理机制- 事件监听器的四种实现方式