网上看到一个python练习题,要随机生成8位数的优惠券,并希望能保存到mysql数据库中。自己查资料写了下面的一段代码完成这个小作业
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 | #!/usr/bin/env python # -*- coding: utf-8 -*- #author qingmiao import MySQLdb as mdb import sys import random,string def random_code(code_length,code_long): i = 1 result = [] while i< = code_length: salt = ''.join(random.sample(string.ascii_letters + string.digits, code_long)) result.append(salt) i = i + 1 return result def save_to_mysql(num_list): try : conn = mdb.connect( "127.0.0.1" , "root" , "root" , "test" ) cur = conn.cursor() conn.select_db( 'test' ) sql_to_create_table = 'create table if not exists active_code(active_code char(32))' cur.execute(sql_to_create_table) cur.executemany( 'insert into active_code values(%s)' , num_list) conn.commit() except mdb.Error, e: print "Error %d: %s" % (e.args[ 0 ], e.args[ 1 ]) sys.exit( 1 ) finally : if conn: conn.close() if __name__ = = '__main__' : code_num = random_code( 10 , 8 ) save_to_mysql(code_num) |
最后去数据库看一下数据插入效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | mysql> select * from active_code; +-------------+ | active_code | +-------------+ | frOkEoDA | | zMabDOn0 | | RjgKWCIb | | G18spXBx | | v8owJXyb | | iwFOBZx9 | | hA1MCrin | | ErTNIxbO | | x2A1boGL | | beBLM3kI | +-------------+ 10 rows in set (0.00 sec) mysql> |