第 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/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数据库
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1971685,如需转载请自行联系原作者