Python 趣味練習- 保存激活碼到mysql和redis

今天接着作練習,題目出自 https://github.com/Yixiaohan/show-me-the-codepython



第 0001 題: 作爲 Apple Store App 獨立開發者,你要搞限時促銷,爲你的應用生成激活碼(或者優惠券),使用 Python 如何生成 200 個激活碼(或者優惠券)?mysql

第 0002 題: 將 0001 題生成的 200 個激活碼(或者優惠券)保存到 MySQL 關係型數據庫中。ios

第 0003 題: 將 0001 題生成的 200 個激活碼(或者優惠券)保存到 Redis 非關係型數據庫中。git


實現的代碼以下所示:github

生成激活碼的模塊uuid,這裏可使用uuid1,4,5等等,主要區別是不一樣的加密算法和生成因子,我這裏使用uuid4,就是純隨機的redis

數據庫的操做我是經過pymysql實現的。基本操做能夠參考 http://beanxyz.blog.51cto.com/5570417/1871039 算法

redis的操做是經過redis模塊實現的。基本操做能夠參考http://beanxyz.blog.51cto.com/5570417/1870139sql


#!/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)


執行腳本的效果:數據庫

控制檯緩存

wKioL1ne-o2yJhZZAABC7huunIU285.png


redis緩存

wKiom1ne_USRjueTAABCWVAs6M4663.png


mysql數據庫

wKioL1ne-o2TRPenAAA3FYU7vVA513.png

相關文章
相關標籤/搜索