Python 趣味練習- 保存激活碼到mysql和redis
阿新 • • 發佈:2017-10-12
python mysql redis uuid
今天接著做練習,題目出自 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