当前位置: 代码迷 >> 综合 >> [python每日一练]--0002:生成激活码并存储到mysql数据库
  详细解决方案

[python每日一练]--0002:生成激活码并存储到mysql数据库

热度:16   发布时间:2024-01-03 20:40:07.0

题目链接:https://github.com/Show-Me-the-Code/show-me-the-code
我的github链接:https://github.com/wjsaya/python_spider_learn/tree/master/python_daily
第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。


思路:

  1. 循环,在count条件内调用length的循环来生成key。
  2. 内循环,length条件下随机生成一个字符并追加到code变量。
  3. 得到一个key之后,保存到mysql数据库

代码:

#coding: utf-8
#第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
#Auther: wjsaya
from random import choice
import string
import pymysql.cursorsdef get_code(dict, length, count):
#根据给定字典,长度来得出激活码for i in range(1,int(count)+1):code = ""#通过count限制激活码个数,循环调用choice来计算激活码for l in range(0,int(length)):code = code+str(choice(dict))save_to_mysql(i, code)def save_to_mysql(id, code):
#保存到mysql数据库host = ("192.168.122.18")user = ("root")pass_ = ("123qwe")db = ("active")#设置数据库连接相关信息connect = pymysql.connect(host, user, pass_, db)cursor = connect.cursor()#链接数据库并设置游标sql = "insert into activeCode(id, code) VALUES ('%d', '%s')"data = (id, code)cursor.execute(sql % data)#执行sql语句if __name__ == "__main__":dict = string.ascii_letters[:]#设定字典为'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'count = input("请输入激活码个数:")if count == "":count = "1"length = input("请输入激活码长度:")if length == "":length = "8"get_code(dict, length, count)

运行结果:
运行截图

结果截图

  相关解决方案