python for 插入数据失败

发布于 2022-01-03 00:49:08 字数 1526 浏览 878 评论 1

生成了200个激活码,将其写入到数据库中,代码执行无报错,但数据未写入,原因不知。

目前,激活码生成正确,数据库创建正确,只有写入失败。

 

版本:

  1.     win10
  2.     python 3.7.2
  3.     mysql 8.0.13
  4.     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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尐偏执 2022-01-04 21:11:32

是不是没有 db.commit()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文