为网友们分享了相关的编程文章,网友余雨蓉根据主题投稿了本篇教程内容,涉及到python、学生管理系统、id、不能重复、python管理系统id号不能重复实例相关内容,已被101网友关注,内容中涉及的知识点可以在下方直接下载获取。
python管理系统id号不能重复实例
python 生成随机不重复的用户id
数据库里面有时候需要不重复的id 来表示用户id,就像QQ号码一样。
如果简单用uuid来生成的话,生成64位,太长。
生成6到8位gid
def generate_gid(): gids = [] for number in range(100000, 10000000): gids.append(number) for gid in gids: index0 = random.randint(0, len(gids) - 1) index1 = len(gids) - 1 tmp = gids[index0] gids[index0] = gids[index1] gids[index1] = tmp return gids.pop()
用户问题:想用 Python 写一个 ID 生成器如何解决并发获取产生重复 ID 的问题?
想用 Flask 写一个服务,为各个应用提供自动生成的 ID。
需要获取 ID 的应用---->登录获取 Token---->通过 Token 附带一些参数(比如:ID 类型,ID 生成规则)获取 ID
现在问题主要有:
有一个删除服务,在应用 APP 中删除业务时需要删除生成器对应的 ID,使得 ID 可以重复利用,因此每次生成 ID 时需要查询是否有重复 ID,使得效率很低,而且并发高时,容易生成重复 ID。
python生成唯一Id的几种方法
# coding:utf-8 import random def createRandomString(len): print ('wet'.center(10,'*')) raw = "" range1 = range(58, 65) # between 0~9 and A~Z range2 = range(91, 97) # between A~Z and a~z i = 0 while i < len: seed = random.randint(48, 122) if ((seed in range1) or (seed in range2)): continue; raw += chr(seed); i += 1 # print(raw) return raw print createRandomString(20)
print ("test".center(20,"-")) #! coding:utf-8 import uuid print u"uuid1 生成基于计算机主机ID和当前时间的UUID" print uuid.uuid1() # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e') print u"\nuuid3 基于命名空间和一个字符的MD5加密的UUID" print uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e') print u"\nuuid4 随机生成一个UUID" print uuid.uuid4() #'16fd2706-8baf-433b-82eb-8c7fada847da' print u"\nuuid5 基于命名空间和一个字符的SHA-1加密的UUID" uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') #UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d') print u"\n根据十六进制字符生成UUID" x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}') print u"转换成十六进制的UUID表现字符" print str(x) # '00010203-0405-0607-0809-0a0b0c0d0e0f'''