系统:Windows 10
编辑器:JetBrains PyCharm Community Edition 2018.2.2 x64
- 这个系列讲讲和唯一ID相关的一些操作
- 今天讲讲如何生成
Part 1:场景描述
- 对于数据的每一条记录一般都有一个唯一的ID,用来标识这一记录
- 在Django项目中,若使用MySQL作为数据库,使用Models创建数据库,会自动创建一个ID字段,且该字段为自增,不重复
- 自增的ID在不同表之间是重复的,那如果有一个个性的需求,需要手动生成一个不重复的ID,如何实现
Part 2:方法1
- 通过时间序列生成ID,已用户的操作时刻生成一串数字,理论上同一毫秒进行操作的概率不大,当然也不是严格没有可能
import datetime
def get_unique_id():
"""
根据时间生成唯一ID
:return:
"""
current_time = datetime.datetime.now()
str_time = current_time.strftime('%Y%m%d%H%M%S%f')[:-3]
unique_id = "{0}".format(str_time)
return unique_id
id_only = get_unique_id()
id_used = "T-{0}".format(id_only)
print(id_used)
代码截图
运行结果
Part 3:方法2
- 通过uuid包实现,是根据当前时间和设备MAC地址生成的,这样两台不同的电脑生成的id肯定是不同的
import uuid
id_1 = uuid.uuid1()
print(id_1)
运行结果
本机mac地址获取
- windows系统下cmd中输入getmac即可,但获取到了两个,实际只是使用了其中一个,why?
本文为原创作品,欢迎分享朋友圈
长按图片识别二维码,关注本公众号
Python 优雅 帅气