Python3.6 20个入门级小程序(三)

来源:互联网 发布:阳江网络问政平台官网 编辑:程序博客网 时间:2024/06/05 15:39

Python3.6 20个小程序入门(三)

需求:将(第二题中)生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。

分析:第二题中使用uuid生成了128位的唯一编码,但是这种编码在客户输入时及其繁琐,目前社会上常使用6位——8位的激活码是怎么做的呢?其实很简单,首先通过标准库string生成包含0~9,a~z,A~Z的一个字符串,然后使用标准库中随机选取的功能即可完成。另外互联网上这道题的解决中出现MySQLdb三方库,可是我使用的是Python3.6查询资料发现MySQLdb只支持到2.*。因此不能使用它,Python3提供了替换的方案——pymysql三方库可以满足需求。

安装pymysql

pip install pymysql

源代码:

#-*- coding:utf-8-*-#生成邀请码功能import pymysqlimport string,randomdef generateCode(n):    r=[]    s=string.digits+string.ascii_letters    for i in range(200):        t=''        for j in range(n):            t+=random.choice(s)        r.append(t)    return r#存入mysql数据库功能conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='dan81dan', db='pythontest', charset='utf8')cursor = conn.cursor()r = generateCode(8)sql = "INSERT INTO `code1` (`id`,`code`) VALUES(%s,%s)"for i in range(200):    cursor.execute(sql,(i+1,r[i]))conn.commit()cursor.close()conn.close()

本代码中关于数据库插入的代码中

sql = "INSERT INTO `code1` (`id`,`code`) VALUES(%s,%s)"
坑:code1 、id 、code上边不是单引号而是撇(数字1左边那个按钮)