Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 第一次调用函数时,如何增加字符数?_Python_Mysql_Auto Increment - Fatal编程技术网

Python 第一次调用函数时,如何增加字符数?

Python 第一次调用函数时,如何增加字符数?,python,mysql,auto-increment,Python,Mysql,Auto Increment,我正在进行socket编程,在这里我展示了我在pythonsocket中使用的代码,这里我从数据库中获取一些数据并进行验证,如果数据得到验证,它将启动我创建密钥的函数 在给出1的范围后,它将显示存储在数据库中的A001,但我希望当函数为第二个客户端运行时,它将递增,即A002 import mysql.connector as mysql mydb1=mysql.connect( user = 'rajat', passwd = 'rajat',

我正在进行socket编程,在这里我展示了我在pythonsocket中使用的代码,这里我从数据库中获取一些数据并进行验证,如果数据得到验证,它将启动我创建密钥的函数

在给出1的范围后,它将显示存储在数据库中的A001,但我希望当函数为第二个客户端运行时,它将递增,即A002

import mysql.connector as mysql 
mydb1=mysql.connect(
        user = 'rajat',
        passwd = 'rajat',
        host = 'localhost',
        database = 'master_database'
        )
mycursor5=mydb1.cursor()
mycursor5.execute("SELECT Version FROM form_simpleform")
obj2 = mycursor5.fetchone()
if obj2 == ('2',):
    def full_format(i):
        if i < 26 * 999:
            c,n = divmod(i,999)   # quotient c is index of letter 0-25, remainder n is 0-998
            c = chr(ord('A') + c) # compute letter
            n += 1
            return f'{c}{n:03}'
        else:
            raise OverflowError(f'limit is {26*999}')
    for X in range(1):
        print(full_format(X))
        mycursor6 = mydb1.cursor()
        sql3 = mycursor6.execute("INSERT INTO imeiserial (Passkey) VALUES ('%s')", (X))
        result = mycursor6.execute(sql3)
        mydb1.commit()
        print('data inserted into the db')
        print(mycursor6.rowcount, "record inserted.")
else:
    print('NOT A PASSKEY')

你基本上有两个选择。如果这是单线程应用程序,则可以引入全局变量。如果不是,并且需要数据持久化,则可以使用Redis来递增键值。启动时,它是一个单线程应用程序,以查看函数如何工作,但之后它将是多线程应用程序。我如何在此处使用Redis递增值Port Redis;r=redis.Redishost=,port=,db=。只要在函数开始时调用r.incrmy_计数器1。如果需要获取该值,请使用r.getmy_计数器。当然,您需要启动redis服务器。好的,我将尝试使用redis获取代码。