虽然对 python 的了解还不是很深入,但是随着学习的推进,不得不感慨,python 真的是太方便了!方便到连接数据库一句代码搞定,ok,上代码~
以下代码完成了这些事:
1. generate_activation_code(code_count) 这个方法用于生成激活码,这里用到了python 的 uuid 模块:
uuid 用于生成唯一标识,通过Mac地址,时间戳,明明空间,伪随机数来保证生成 ID 的唯一性,uuid 有五种算法,即有五
种实现。这里用了 uuid,uuid1(), 此方法返回的是一个UUID对象。由mac地址,当前时间戳,随机数生成,可保证全球范围内
的唯一性。好吧,其实是因为懒,所以选择了这种调用起来最简单的实现方法,其余的实现,有兴趣的可自行百度。
2. 对于数据库的操作:这一部分在代码中附有简单注释,就不唧唧歪歪了~
__author__ = 'Administrator'
# encoding:utf-8
# 完成show me the code 0001-0002
# 生成200个激活码并保存到mysql 关系数据库
import uuid
import pymysql
# 用uuid生成 code_count 个激活码:
def generate_activation_code(code_count):
data = []
for i in range(0, code_count):
item = {}
code = uuid.uuid1().__str__()
item['id'] = i
item['code'] = code
data.append(item)
return data
class DBUtil:
conn = None
cur = None
def __init__(self):
self.get_connection()
self.get_cursor()
self.conn.select_db = 'python'
# 获取数据库连接
def get_connection(self):
self.conn = pymysql.connect(host='localhost', port=3306, user='python',
passwd='123456', db='python', charset='utf8')
# 获取操作游标
def get_cursor(self):
try:
self.cur = self.conn.cursor()
except Exception as e:
print(e)
pass
# 执行操作
def execute(self, statement='', *args):
self.cur.execute(statement, args)
# 提交
def commit(self):
self.conn.commit()
# 关闭数据库连接及游标,释放资源
def close(self):
self.conn.close()
self.cur.close()
if __name__ == '__main__':
data = generate_activation_code(200)
client = DBUtil()
drop_stmt = """DROP TABLE IF EXISTS actuvation_code;"""
create_table_stmt = """create table actuvation_code (
id INT(4),
code VARCHAR(40) );"""
try:
client.execute(drop_stmt)
client.commit()
client.execute(create_table_stmt)
client.commit()
except Exception as e:
print(e)
pass
insert_stmt = """insert INTO actuvation_code(id,code) VALUES (%s,%s)"""
if data:
try:
for item in data:
arg = [item['id'], item['code']]
client.execute(insert_stmt, item['id'], item['code'])
client.commit()
except Exception as e:
print(e)
pass
client.close()