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