1. 程式人生 > >Python 趣味練習- 保存激活碼到mysql和redis

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

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