Python 趣味练习- 保存激活码到mysql和redis
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 趣味练习- 保存激活码到mysql和redis相关的知识,希望对你有一定的参考价值。
今天接着做练习,题目出自 https://github.com/Yixiaohan/show-me-the-code
第 0001 题: 做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
第 0002 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
第 0003 题: 将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。
实现的代码如下所示:
生成激活码的模块uuid,这里可以使用uuid1,4,5等等,主要区别是不同的加密算法和生成因子,我这里使用uuid4,就是纯随机的
数据库的操作我是通过pymysql实现的。基本操作可以参考 http://beanxyz.blog.51cto.com/5570417/1871039
redis的操作是通过redis模块实现的。基本操作可以参考http://beanxyz.blog.51cto.com/5570417/1870139
#!/usr/bin/env python #! -*- coding:utf-8 -*- # Author: Yuan Li import uuid import pymysql import redis def generate_key(num): li=[] for i in range(num): #uuid4是随机生成的验证码 S = uuid.uuid4() valuekey = str(S) li.append(valuekey) return li def save_db(keys): #绑定数据库和表 conn = pymysql.connect(host=‘sydnagios‘, port=3306, user=‘yli‘, passwd=‘yli‘, db=‘test‘) #通过游标来执行sql语句 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) for valuekey in keys: # 把值插入表中 cursor.execute("insert into Code(serial) value (%s)", (valuekey)) conn.commit() # 查询一下表的结果 cursor.execute(‘select * from Code‘) # 输出结果 row = cursor.fetchall() for item in range(len(row)): print(row[item]) cursor.close() conn.close() import redis def save_redis(keys): r = redis.Redis(host=‘sydnagios‘, port=6379) for item in keys: r.lpush(‘list1‘,item) if __name__ == ‘__main__‘: li=generate_key(20) save_db(li) save_redis(li)
执行脚本的效果:
控制台
redis缓存
mysql数据库
本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1971685
以上是关于Python 趣味练习- 保存激活码到mysql和redis的主要内容,如果未能解决你的问题,请参考以下文章