python for 插入数据失败

陆雨笙 发布于 03/28 16:47
阅读 47
收藏 0

生成了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()

 

加载中
0
黄皮狗
黄皮狗

是不是没有 db.commit()

返回顶部
顶部