小編給大家分享一下python生成并處理uuid的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
10年的喀左網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整喀左建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“喀左網(wǎng)站設(shè)計(jì)”,“喀左網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。UUID(Universally Unique Identifier)是通用唯一識(shí)別碼,在許多領(lǐng)域用作標(biāo)識(shí),比如我們常用的數(shù)據(jù)庫(kù)也可以用它來(lái)作為主鍵,原理上它是可以對(duì)任何東西進(jìn)行唯一的編碼的。
作為新手一看到類似varchar(40)這樣的主鍵就覺得有點(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(),
然而并沒有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個(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è)我們也很少用到,莫名其妙的感覺。
uuid4():這是基于隨機(jī)數(shù)的uuid,既然是隨機(jī)就有可能真的遇到相同的,但這就像中獎(jiǎng)似的,幾率超小,因?yàn)槭请S機(jī)而且使用還方便,所以使用這個(gè)的還是比較多的。
uuid5():這個(gè)看起來(lái)和uuid3()貌似并沒有什么不同,寫法一樣,也是由用戶來(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 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主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。
看完了這篇文章,相信你對(duì)“python生成并處理uuid的示例分析”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。