当前位置:主页 > python教程 > python管理系统id号不能重复实例

python学生管理系统id号不能重复典型问题

发布:2019-07-05 15:26:01 124


为网友们分享了相关的编程文章,网友余雨蓉根据主题投稿了本篇教程内容,涉及到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'''

 


参考资料

相关文章

  • 解决Python报错:ValueError:operands could not be broadcast together with shapes

    发布:2023-04-05

    这篇文章主要给大家介绍了关于解决Python报错:ValueError:operands could not be broadcast together with shapes的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下


  • 详解怎样通过50行Python代码获取公众号全部文章

    发布:2020-01-29

    这篇文章主要介绍了如何通过50行Python代码获取公众号全部文章,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  • python环境安装详细步骤

    发布:2019-07-09

    官网下载python,网址https://www.python.org/downloads/,建议使用python3版本。安装过程中添加python到环境变量。命令行输入python,回车,不报错,即python运行环境安装成功。


  • springboot在idea下debug调试热部署问题

    发布:2023-04-12

    这篇文章主要介绍了springboot在idea下debug调试热部署问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • IntelliJ IDEA2022.3 springboot 热部署含静态文件(最新推荐)

    发布:2023-04-21

    这篇文章主要介绍了IntelliJ IDEA2022.3 springboot 热部署含静态文件,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • Python运算符与控制流的基础学习

    发布:2020-06-15

    本文主要针对 Python 的运算符和控制流进行讲解,这里只介绍 Python 中比较独特的部分,和其他语言类似的东西,比如加减乘除运算符就不在介绍。由于这篇文章是入门级别的文章,高手可直接


  • Android布局ConstraintLayout代码修改约束及辅助功能

    发布:2023-03-13

    这篇文章主要为大家介绍了Android布局ConstraintLayout代码修改约束及辅助功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android 三行代码实现高斯模糊效果

    发布:2023-03-14

    这篇文章主要介绍了Android 三行代码实现高斯模糊效果,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下


网友讨论