python for 插入数据失败
生成了200个激活码,将其写入到数据库中,代码执行无报错,但数据未写入,原因不知。
目前,激活码生成正确,数据库创建正确,只有写入失败。
版本:
- win10
- python 3.7.2
- mysql 8.0.13
- pymysql 0.9.3
源码如下:
import random
import pymysql
# 生成200个激活码
def activation_code():
activation = []
code = ''
for i in range(1, 201): # 生成200个激活码
for i in range(1, 12): # 激活码为11位
current = random.randint(0, 12)
if i == 4 or i == 8:
num = '-'
elif current == i:
num = chr(random.randint(48, 57)) # 随机0~9的数字
else:
num = chr(random.randint(97, 122)) # 随机小写字母
code += num
activation.append(code)
code = ''
return activation
# 将激活码保存到数据库中
def tables_data():
# 连接数据库
db = pymysql.connect(
"localhost",
"root",
"123456",
"shop"
)
# 获取操作游标
code_data = db.cursor()
# 创建数据表
sql_1 = """CREATE TABLE shop.codedate(
activation_code VARCHAR(100) NOT NULL)"""
# 插入数据
sql_2 = "INSERT INTO shop.codedate(activation_code) VALUES('%s')"
# 执行创建数据表命令
code_data.execute(sql_1)
# 将生成的激活码列表遍历插入到数据表中
for i in activation_code():
code_data.execute(sql_2 % (i))
tables_data()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是不是没有 db.commit()