python练习册3

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中

-----------------------------------------------------------------------------------------------------------

import mysql.connector
import string,random
import re
#生成激活码函数
def generateCode(n):
    r=[]	
    s=string.digits+string.ascii_letters	
    for i in range(200):		
        t=''		
        for j in range(n):
            t+=random.choice(s)		
        r.append(r"'%s'"%t)	
        print(r[i])
    return r
#数据库操作方法,详细见廖雪峰老师教程
conn = mysql.connector.connect(user='root', password='123456', database='test')
cur=conn.cursor()
cur.execute('create table user (id varchar(20) primary key, name varchar(20))')
r=generateCode(8) 
i=0
#存入数据库
while i<200:	
    sql='insert into user (id, name) values (%s, %s)' % (i+1,r[i])	
    cur.execute(sql)
    i+=1
conn.commit()
cur.close()
conn.close()

------------------------------------------------------------------------------------------------------------------------------

在进行数据库的连接写入过程中,出现了很多问题。

1.例如数据库模块不存在。可以看看廖雪峰老师的教程。下面有很多网友给出了解决方法。

连接:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320107391860b39da6901ed41a296e574ed37104752000

2,在数据库数据导入过程中,可能会出现

Traceback (most recent call last):
  File "server.py", line 24, in <module>
    cur.execute(sql)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\mysql\connector\cursor.py", line 515, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\mysql\connector\connection.py", line 488, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\mysql\connector\connection.py", line 395, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'WF3gRCXd' in 'field list
这个是因为第二个参数的原因。我试了很久。需要把值加上引号。。。所以。代码如上面函数中,输出列表中都是加上引号才成功的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值