欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年03月03日 10:04:30   作者:魔鏡之戀  
這篇文章主要介紹了python生成并處理uuid的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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-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è)我們也很少用到,莫名其妙的感覺(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 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的實(shí)現(xiàn)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)將HTML轉(zhuǎn)換成doc格式文件的方法,涉及Python htmlparser及docx模塊的相關(guān)使用技巧,需要的朋友可以參考下
    2017-11-11
  • Python讀取excel指定列生成指定sql腳本的方法

    Python讀取excel指定列生成指定sql腳本的方法

    今天小編就為大家分享一篇Python讀取excel指定列生成指定sql腳本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • django中related_name的用法說(shuō)明

    django中related_name的用法說(shuō)明

    這篇文章主要介紹了django中related_name的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 快速進(jìn)修Python指南之自定義模塊常用模塊

    快速進(jìn)修Python指南之自定義模塊常用模塊

    這篇文章主要為大家介紹了Java開(kāi)發(fā)者如何快速進(jìn)修Python指南之自定義模塊常用模塊示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • python中使用(.)進(jìn)行相對(duì)路徑訪問(wèn)文件的操作方法

    python中使用(.)進(jìn)行相對(duì)路徑訪問(wèn)文件的操作方法

    在Python中,使用相對(duì)路徑訪問(wèn)文件是一種常見(jiàn)的做法,尤其是在處理與腳本位于同一目錄或附近目錄的文件時(shí),這篇文章主要介紹了python中使用(.)來(lái)進(jìn)行相對(duì)路徑訪問(wèn)文件,需要的朋友可以參考下
    2024-05-05
  • 解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes

    解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?t

    這篇文章主要給大家介紹了關(guān)于解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • 深入理解Python變量的數(shù)據(jù)類型和存儲(chǔ)

    深入理解Python變量的數(shù)據(jù)類型和存儲(chǔ)

    這篇文章主要介紹了Python變量的數(shù)據(jù)類型和存儲(chǔ),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 詳解Python爬取并下載《電影天堂》3千多部電影

    詳解Python爬取并下載《電影天堂》3千多部電影

    這篇文章主要介紹了Python爬取并下載《電影天堂》3千多部電影,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python使用struct處理二進(jìn)制的實(shí)例詳解

    Python使用struct處理二進(jìn)制的實(shí)例詳解

    這篇文章主要介紹了Python使用struct處理二進(jìn)制的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • Python圖形驗(yàn)證碼識(shí)別教程詳解

    Python圖形驗(yàn)證碼識(shí)別教程詳解

    這篇文章主要介紹了Python圖形驗(yàn)證碼識(shí)別,目前,許多網(wǎng)站采取各種各樣的措施來(lái)反爬蟲(chóng),其中一個(gè)措施便是使用驗(yàn)證碼。隨著技術(shù)的發(fā)展,驗(yàn)證碼的花樣越來(lái)越多。驗(yàn)證碼最初是幾個(gè)數(shù)字組合的簡(jiǎn)單的圖形驗(yàn)證碼,后來(lái)加入了英文字母和混淆曲線
    2023-02-02

最新評(píng)論