网上看到一个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>