python生成激活码

2023-01-31 02:01:24 python 生成 激活码

GitHub上的小练习啦,生成激活码,并且保存到Mysql数据库中,代码:

#coding=utf-8
import uuid
import pymysql
'''
uuid库生成128位全局唯一标识符
'''
#生成num个验证码,每个验证码长度位length,可设置默认长度
def create_num(num,length=16):
    result=[]
    while num>0:
        uuid_id=uuid.uuid1()
        temp=str(uuid_id).replace('-','')[:length]
        if temp not in result:
            result.append(temp)
            num-=1
    return result

def save_to_mysql(code):
    conn=pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        passwd='root',
        db='test')
    try:
        with conn.cursor() as cursor:
            #获取操作游标
            sql="INSERT INTO `codes`(`code`)VALUES(%s)"
            cursor.execute(sql,code)
            conn.commit()

        with conn.cursor() as cursor:
            sql="SELECT `id`,`code` FROM `codes` WHERE `code`=%s"
            cursor.execute(sql,code)
            # 使用 fetchone() 方法获取一条数据库
            result=cursor.fetchone()
            print(result)
    finally:
        conn.close()
for code in create_num(200):
    save_to_mysql(code)

学习笔记
1、uuid库,python使用UUID库生成128位的全局唯一标识符。
2、使用Python进行mysql的库主要有三个:MySQLdb,PyMySQL和SQLAlchemy。
Python-MySQL资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,只支持Python2,不支持python3
PyMySQL为替代Python-MySQL而生,纯python打造,接口与Python-MySQL兼容,安装方便,支持Python3。
SQLAlchemy是一个ORM框架,它并不提供底层的数据库操作,而是要借助于MySQLdb、PyMySQL等第三方库来完成,目前SQLAlchemy在WEB编程领域应用广泛。
本例用的是PyMySQL,代码是很典型的数据库操作。

相关文章