python学生管理系统id号不能重复典型问题
- 更新时间:2019-07-05 15:26:01
- 编辑:赖博瀚
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'''

相关教程
-
python时间日期函数与利用pandas进行时间序列处理详解
python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到,而pandas则可以对时间进行序列化排序
发布时间:2019-08-26
-
python基于SMTP协议发送邮件
这篇文章主要为大家详细介绍了python基于SMTP协议发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2019-06-03
-
Python渗透测试编程技术:方法与实践
《Python渗透测试编程技术:方法与实践》由资深的网络安全教师撰写,内容围绕如何使用目前备受瞩目的Python语言进行网络安全编程展开。《Python渗透测试编程技术:方法与实践》从Python的基础讲起,系统讲述了网络安全的作用、方法论,Python在网络安全管理上的应用,以及Python在实现这些应用时相关的网络原理和技术。
大小:167.2 MBPython编程电子书
-
Python地理空间分析指南
Python作为一种高级程序设计语言,凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言之一。 本书以地理空间分析为背景,介绍了Python在地理信息处理方面的应用技巧。全书共
大小:12.4 MBPython电子书
-
Python数据抓取技术与实战
这本书通过数据抓取篇(如何获得数据信息)、数据分析篇(分析挖掘,提取出有价值的信息)、数据可视化篇(以直观清晰的图形表示出关键的数量关系和概念)详细的描述数据抓取、分析、展示的整个流程,而且每一篇自成一体,可以单独学习掌握
大小:59.3 MBPython爬虫电子书
-
预测分析建模:Python与R语言实现
本书介绍使用R与Python预测分析建模来解决实际问题,,并提供有效的解决方法。通过展示建模技术和编程工具,我们将抽象的概念转换为具体的例子,推荐阅读
大小:79.4 MB建模电子书
-
Python文本分析
本书是Intel首席科学家撰写,全面系统阐释Python文本分析的相关基础知识、实用技术及实践,介绍了文本和语言语法、结构和语义的基础概念和高级概念等,欢迎下载
大小:100.4 MBPython编程电子书
-
从Excel到Python:数据分析进阶指南
Excel是数据分析中最常用的工具,本书通过Python与Excel的功能对比介绍如何使用Python通过函数式编程完成Excel中的数据处理及分析工作。在Python中pandas库用于数据处理,我们从1787页的pandas官网文
大小:9.69 MBPython数据电子书