創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司是一家成都做網(wǎng)站、成都網(wǎng)站設(shè)計,提供網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,網(wǎng)站制作,建網(wǎng)站,按需搭建網(wǎng)站,網(wǎng)站開發(fā)公司,從2013年開始是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價值為核心業(yè)務(wù),全程參與項目的網(wǎng)站策劃設(shè)計制作,前端開發(fā),后臺程序制作以及后期項目運(yùn)營并提出專業(yè)建議和思路。這篇文章將為大家詳細(xì)講解有關(guān)python生成uuid的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
UUID(Universally Unique Identifier)是通用唯一識別碼,在許多領(lǐng)域用作標(biāo)識,比如我們常用的數(shù)據(jù)庫也可以用它來作為主鍵,原理上它是可以對任何東西進(jìn)行唯一的編碼的。作為新手一看到類似varchar(40)這樣的主鍵就覺得有點蒙圈了,字符串型也不能自增啊,這里就應(yīng)該應(yīng)用UUID了。數(shù)據(jù)庫一般都有自己的辦法生成UUID,但雖然可以用,但這玩意考慮到可讀性和有點坑的長度還是盡量不要用這玩意做主鍵。
下面就簡單說明一下python是如何生成UUID的:
python有一個模塊叫做uuid,導(dǎo)入它就可以使用它的四個方法了。注意這四個方法依次是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():這個是根據(jù)當(dāng)前的時間戳和MAC地址生成的,最后的12個字符408d5c985711對應(yīng)的就是MAC地址,因為是MAC地址,那么唯一性應(yīng)該不用說了。但是生成后暴露了MAC地址這就很不好了。
uuid3():里面的namespace和具體的字符串都是我們指定的,然后呢···應(yīng)該是通過MD5生成的,這個我們也很少用到,莫名其妙的感覺。
uuid4():這是基于隨機(jī)數(shù)的uuid,既然是隨機(jī)就有可能真的遇到相同的,但這就像中獎似的,幾率超小,因為是隨機(jī)而且使用還方便,所以使用這個的還是比較多的。
uuid5():這個看起來和uuid3()貌似并沒有什么不同,寫法一樣,也是由用戶來指定namespace和字符串,不過這里用的散列并不是MD5,而是SHA1。
下面再來說一下簡單的處理,UUID中間的'-'是個比較奇怪的字符,那么應(yīng)該去掉它,這其實超簡單:
uid = str(uuid.uuid4())suid = ''.join(uid.split('-'))
關(guān)于python生成uuid的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享題目:python生成uuid的方法-創(chuàng)新互聯(lián)
文章位置:http://aaarwkj.com/article0/icgio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、外貿(mào)建站、響應(yīng)式網(wǎng)站、微信小程序、動態(tài)網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容