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

题目链接: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数据库

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#coding: utf-8
#第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
#Auther: wjsaya
from random import choice
import string
import pymysql.cursors
def 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)

效果图

0002-1

0002-2

0%