电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python通用唯一標識符uuid模塊使用案例

瀏覽:86日期:2022-07-11 15:51:26

1. 背景知識:

UUID: 通用唯一標識符 ( Universally Unique Identifier ), 對于所有的UUID它可以保證在空間和時間上的唯一性. 它是通過MAC地址, 時間戳, 命名空間, 隨機數, 偽隨機數來保證生成ID的唯一性, 有著固定的大小( 128 bit ). 它的唯一性和一致性特點使得可以無需注冊過程就能夠產生一個新的UUID. UUID可以被用作多種用途, 既可以用來短時間內標記一個對象, 也可以可靠的辨別網絡中的持久性對象.

為什么要使用UUID?

很多應用場景需要一個id, 但是又不要求這個id 有具體的意義, 僅僅用來標識一個對象. 常見的例子有數據庫表的id 字段. 另一個例子是前端的各種UI庫, 因為它們通常需要動態創建各種UI元素, 這些元素需要唯一的id , 這時候就需要使用UUID了.

2. Python的uuid模塊

python的uuid模塊提供UUID類和函數uuid1(), uuid3(), uuid4(), uuid5() 來生成1, 3, 4, 5各個版本的UUID ( 需要注意的是: python中沒有uuid2()這個函數). 對uuid模塊中最常用的幾個函數總結如下:

1. uuid.uuid1([node[, clock_seq]]) : 基于時間戳

使用主機ID, 序列號, 和當前時間來生成UUID, 可保證全球范圍的唯一性. 但由于使用該方法生成的UUID中包含有主機的網絡地址, 因此可能危及隱私. 該函數有兩個參數, 如果 node 參數未指定, 系統將會自動調用 getnode() 函數來獲取主機的硬件地址. 如果 clock_seq 參數未指定系統會使用一個隨機產生的14位序列號來代替.

2. uuid.uuid3(namespace, name) : 基于名字的MD5散列值

通過計算命名空間和名字的MD5散列值來生成UUID, 可以保證同一命名空間中不同名字的唯一性和不同命名空間的唯一性, 但同一命名空間的同一名字生成的UUID相同.

4. uuid.uuid4() : 基于隨機數

通過隨機數來生成UUID. 使用的是偽隨機數有一定的重復概率.

5. uuid.uuid5(namespace, name) : 基于名字的SHA-1散列值

通過計算命名空間和名字的SHA-1散列值來生成UUID, 算法與 uuid.uuid3() 相同.

3. uuid模塊的典型使用方法:

>>> import uuid>>> # make a UUID based on the host ID and current time>>> uuid.uuid1()UUID(’a8098c1a-f86e-11da-bd1a-00112444be1e’)>>> # make a UUID using an MD5 hash of a namespace UUID and a name>>> uuid.uuid3(uuid.NAMESPACE_DNS, ’python.org’)UUID(’6fa459ea-ee8a-3ca4-894e-db77e160355e’)>>> # make a random UUID>>> uuid.uuid4()UUID(’16fd2706-8baf-433b-82eb-8c7fada847da’)>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name>>> uuid.uuid5(uuid.NAMESPACE_DNS, ’python.org’)UUID(’886313e1-3b8a-5372-9b90-0c9aee199e5d’)>>> # make a UUID from a string of hex digits (braces and hyphens ignored)>>> x = uuid.UUID(’{00010203-0405-0607-0809-0a0b0c0d0e0f}’)>>> # convert a UUID to a string of hex digits in standard form>>> str(x)’00010203-0405-0607-0809-0a0b0c0d0e0f’>>> # get the raw 16 bytes of the UUID>>> x.bytes’x00x01x02x03x04x05x06x07x08tnx0bx0crx0ex0f’>>> # make a UUID from a 16-byte string>>> uuid.UUID(bytes=x.bytes)UUID(’00010203-0405-0607-0809-0a0b0c0d0e0f’)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 电动葫芦|防爆钢丝绳电动葫芦|手拉葫芦-保定大力起重葫芦有限公司 | 不锈钢轴流风机,不锈钢电机-许昌光维防爆电机有限公司(原许昌光维特种电机技术有限公司) | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 河南砖机首页-全自动液压免烧砖机,小型砌块水泥砖机厂家[十年老厂] | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 百度网站优化,关键词排名,SEO优化-搜索引擎营销推广 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 | 森旺-A级防火板_石英纤维板_不燃抗菌板装饰板_医疗板 | 模切之家-专注服务模切行业的B2B平台!| 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 煤矿支护网片_矿用勾花菱形网_缝管式_管缝式锚杆-邯郸市永年区志涛工矿配件有限公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 黑龙江「京科脑康」医院-哈尔滨失眠医院_哈尔滨治疗抑郁症医院_哈尔滨精神心理医院 | 北京包装设计_标志设计公司_包装设计公司-北京思逸品牌设计 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 云南成人高考网| 氧化铁红厂家-淄博宗昂化工 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 橡胶电子拉力机-塑料-微电脑电子拉力试验机厂家-江苏天源 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 垃圾处理设备_餐厨垃圾处理设备_厨余垃圾处理设备_果蔬垃圾处理设备-深圳市三盛环保科技有限公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | ORP控制器_ORP电极价格-上优泰百科| 云南成人高考_云南成考网| 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 |