11#!/usr/bin/env python
2- #-*-coding:utf-8-*-
2+ # -*-coding:utf-8-*-
3+
4+ # 第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
35
4- """
5- 第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。
6- """
76import MySQLdb
87import string
98import random
109
1110KEY_LEN = 20
1211KEY_ALL = 200
1312
13+
1414def base_str ():
15- return (string .letters + string .digits )
15+ return (string .letters + string .digits )
16+
1617
1718def key_gen ():
1819 keylist = [random .choice (base_str ()) for i in range (KEY_LEN )]
1920 return ("" .join (keylist ))
2021
21- def key_num (num ,result = None ):
22+
23+ def key_num (num , result = None ):
2224 if result is None :
2325 result = []
2426 for i in range (num ):
2527 result .append (str (key_gen ()))
2628 return result
2729
30+
2831class mysql_init (object ):
2932
30- def __init__ (self ,conn ):
33+ def __init__ (self , conn ):
3134 self .conn = None
3235
33- #connect to mysql
36+ # connect to mysql
3437 def connect (self ):
3538 self .conn = MySQLdb .connect (
36- host = "localhost" ,
37- port = 3306 ,
38- user = "root" ,
39- passwd = "123456" ,
40- db = "test" ,
41- charset = "utf8"
42- )
39+ host = "localhost" ,
40+ port = 3306 ,
41+ user = "root" ,
42+ passwd = "123456" ,
43+ db = "test" ,
44+ charset = "utf8"
45+ )
4346
4447 def cursor (self ):
4548 try :
4649 return self .conn .cursor ()
47- except (AttributeError ,MySQLdb .OperationalError ):
50+ except (AttributeError , MySQLdb .OperationalError ):
4851 self .connect ()
4952 return self .conn .cursor ()
5053
@@ -53,48 +56,76 @@ def commit(self):
5356
5457 def close (self ):
5558 return self .conn .close ()
56-
59+
60+
5761def process ():
5862 dbconn .connect ()
59- conn = dbconn .cursor ()
63+ conn = dbconn .cursor ()
6064 DropTable (conn )
6165 CreateTable (conn )
6266 InsertDatas (conn )
6367 QueryData (conn )
6468 dbconn .close ()
6569
66- def query (sql ,conn ):
70+ # def execute(sql):
71+ # '''执行sql'''
72+ # conn=dbconn.cursor()
73+ # conn.execute(sql)
74+
75+ # def executemany(sql, tmp):
76+ # '''插入多条数据'''
77+ # conn=dbconn.cursor()
78+ # conn.executemany(sql,tmp)
79+
80+
81+ def query (sql , conn ):
82+ '''查询sql'''
83+ # conn=dbconn.cursor()
6784 conn .execute (sql )
6885 rows = conn .fetchall ()
6986 return rows
7087
88+
7189def DropTable (conn ):
90+ # conn=dbconn.cursor()
7291 conn .execute ("DROP TABLE IF EXISTS `user_key`" )
73-
92+
93+
7494def CreateTable (conn ):
75- sql_create = ''' CREATE TABLE `user_key` (`key` varchar(50) NOT NULL)'''
95+ # conn=dbconn.cursor()
96+ sql_create = ''' CREATE TABLE `user_key` (`key` varchar(50) NOT NULL)'''
7697 conn .execute (sql_create )
7798
99+
78100def InsertDatas (conn ):
101+ # conn=dbconn.cursor()
102+ # insert_sql = "insert into user_key values(%s)"
79103 insert_sql = "INSERT INTO user_key VALUES (%(value)s)"
80104 key_list = key_num (KEY_ALL )
81- conn .executemany (insert_sql ,[dict (value = v ) for v in key_list ])
105+ # print len(key_list)
106+ # conn.executemany(insert_sql,str(key_listi))
107+ # conn.executemany("INSERT INTO user_key VALUES (%(value)s)",
108+ # [dict(value=v) for v in key_list])
109+ conn .executemany (insert_sql , [dict (value = v ) for v in key_list ])
110+
82111
83112def DeleteData ():
84113 del_sql = "delete from user_key where id=2"
85114 execute (del_sql )
86115
116+
87117def QueryData (conn ):
88118 sql = "select * from user_key"
89- rows = query (sql ,conn )
119+ rows = query (sql , conn )
90120 printResult (rows )
91121
122+
92123def printResult (rows ):
93124 if rows is None :
94125 print "rows None"
95126 for row in rows :
96127 print row
97128
98129if __name__ == "__main__" :
99- dbconn = mysql_init (None )
100- process ()
130+ dbconn = mysql_init (None )
131+ process ()
0 commit comments