久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python生成并處理uuid的實(shí)現(xiàn)方式

瀏覽:108日期:2022-08-04 15:29:42

UUID(Universally Unique Identifier)是通用唯一識(shí)別碼,在許多領(lǐng)域用作標(biāo)識(shí),比如我們常用的數(shù)據(jù)庫(kù)也可以用它來(lái)作為主鍵,原理上它是可以對(duì)任何東西進(jìn)行唯一的編碼的。

作為新手一看到類似varchar(40)這樣的主鍵就覺(jué)得有點(diǎn)蒙圈了,字符串型也不能自增啊,這里就應(yīng)該應(yīng)用UUID了。

數(shù)據(jù)庫(kù)一般都有自己的辦法生成UUID,但雖然可以用,但這玩意考慮到可讀性和有點(diǎn)坑的長(zhǎng)度還是盡量不要用這玩意做主鍵···咳,有點(diǎn)跑題···

下面就簡(jiǎn)單說(shuō)明一下python是如何生成UUID的:

python有一個(gè)模塊叫做uuid,導(dǎo)入它就可以使用它的四個(gè)方法了。注意這四個(gè)方法依次是uuid1(),uuid3(),uuid4(),uuid5(),

然而并沒(méi)有uuid2()。

# -*- coding:utf-8 -*-import uuid print uuid.uuid1()#bf1dfacf-67d8-11e8-9a23-408d5c985711print uuid.uuid3(uuid.NAMESPACE_DNS, ’yuanlin’)#ddb366f5-d4bc-3a20-ac68-e13c0560058fprint uuid.uuid4()#144d622b-e83a-40ea-8ca1-66af8a86261cprint uuid.uuid5(uuid.NAMESPACE_DNS, ’yuanlin’)#4a47c18d-037a-5df6-9e12-20b643c334d3

乍一看全都是36個(gè)字符,那么他們到底有什么不同呢,下面一一分析。

uuid1():這個(gè)是根據(jù)當(dāng)前的時(shí)間戳和MAC地址生成的,最后的12個(gè)字符408d5c985711對(duì)應(yīng)的就是MAC地址,因?yàn)槭荕AC地址,那么唯一性應(yīng)該不用說(shuō)了。但是生成后暴露了MAC地址這就很不好了。

uuid3():里面的namespace和具體的字符串都是我們指定的,然后呢···應(yīng)該是通過(guò)MD5生成的,這個(gè)我們也很少用到,莫名其妙的感覺(jué)。

uuid4():這是基于隨機(jī)數(shù)的uuid,既然是隨機(jī)就有可能真的遇到相同的,但這就像中獎(jiǎng)似的,幾率超小,因?yàn)槭请S機(jī)而且使用還方便,所以使用這個(gè)的還是比較多的。

uuid5():這個(gè)看起來(lái)和uuid3()貌似并沒(méi)有什么不同,寫法一樣,也是由用戶來(lái)指定namespace和字符串,不過(guò)這里用的散列并不是MD5,而是SHA1.

下面再來(lái)說(shuō)一下簡(jiǎn)單的處理,UUID中間的’-’是個(gè)比較奇怪的字符,那么應(yīng)該去掉它,這其實(shí)超簡(jiǎn)單:

uid = str(uuid.uuid4())suid = ’’.join(uid.split(’-’))

補(bǔ)充拓展:python生成uuid,并去掉中間的’-’

UUID(Universally Unique Identifier)是通用唯一識(shí)別碼,是軟件建構(gòu)的標(biāo)準(zhǔn),號(hào)稱可以對(duì)任何一種東西進(jìn)行唯一的編碼。下面來(lái)看一下python中怎么生成uuid編碼并去除其中間的符號(hào)‘-’。

import uuids_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的實(shí)現(xiàn)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 浮山县| 济源市| 清镇市| 三江| 大丰市| 彭泽县| 古丈县| 定南县| 涟源市| 德安县| 芒康县| 岳池县| 郓城县| 三河市| 蓝田县| 周宁县| 贡山| 沅江市| 海淀区| 婺源县| 美姑县| 张家川| 西乌| 望奎县| 沈丘县| 紫金县| 边坝县| 武汉市| 台州市| 佛山市| 阳朔县| 十堰市| 体育| 曲周县| 明星| 彭州市| 六安市| 乌审旗| 晴隆县| 滦南县| 合山市|