Python Angular、Flask、mysql.connector编程错误:参数数量错误

Python Angular、Flask、mysql.connector编程错误:参数数量错误,python,mysql,angularjs,flask,Python,Mysql,Angularjs,Flask,我正在使用Angular、Flask和MySQL.connector连接到MySQL数据库: 这是我的python flask代码,用于处理插入新“电影”的post请求: 我知道这不是我的Angularjs,因为我的浏览器控制台显示内部服务器错误(500),所以我开始打印由flask和mysql.connector处理的insert语句: ('INSERT INTO Movie (idMovie, MovieName, MovieYear) VALUES (%d, %s, %d)', (100,

我正在使用Angular、Flask和MySQL.connector连接到MySQL数据库:

这是我的python flask代码,用于处理插入新“电影”的post请求:

我知道这不是我的Angularjs,因为我的浏览器控制台显示内部服务器错误(500),所以我开始打印由flask和mysql.connector处理的insert语句:

('INSERT INTO Movie (idMovie, MovieName, MovieYear) VALUES (%d, %s, %d)', (100, 'Test', 2010))
这似乎是正确的

然而,我不断地

    "Wrong number of arguments during string formatting")
ProgrammingError: Wrong number of arguments during string formatting
===============================================================================

感谢您的回答,对于那些想知道这就是我将代码切换到的内容的人来说,它是固定的:

@app.route("/addMovies", methods=['POST'])
def addMovies():
    cnx = mysql.connector.connect(user='root', database='MovieTheatre')
    cursor = cnx.cursor()
    insert_stmt = (
        "INSERT INTO Movie (idMovie, MovieName, MovieYear) "
        "VALUES (%s, %s, %s)"
    )

    post = request.get_json()
    data = (post['idMovie'], post['MovieName'], post['MovieYear'])
    print(insert_stmt,data)
    cursor.execute(insert_stmt,data)
    cnx.commit()
    cnx.close()
    return data

SQL参数替换与字符串格式不同。您应该始终使用
%s
,即使对于整数也是如此。

SQL参数替换与字符串格式不同。您应该始终使用
%s
,即使对于整数也是如此。

检查,它表示cursor.execute()方法会根据需要将内容转换为数据库能够理解的内容。似乎您应该只在字符串中使用
%s
占位符,并让execute方法上的所有内容都执行。

检查,它表示游标。execute()方法将必要的内容转换为数据库能够理解的内容。似乎您应该只在字符串中使用
%s
占位符,而让execute方法上的所有内容都执行。

您甚至不需要调用str()手动转换,因为类型转换是游标的任务。execute methodok true将删除该选项,然后我得到以下错误:TypeError:“int”对象不可调用您甚至不需要调用str()由于类型转换是游标的任务,因此手动执行。execute methodok true将删除该选项,然后我会收到以下错误:TypeError:“int”对象不可调用
@app.route("/addMovies", methods=['POST'])
def addMovies():
    cnx = mysql.connector.connect(user='root', database='MovieTheatre')
    cursor = cnx.cursor()
    insert_stmt = (
        "INSERT INTO Movie (idMovie, MovieName, MovieYear) "
        "VALUES (%s, %s, %s)"
    )

    post = request.get_json()
    data = (post['idMovie'], post['MovieName'], post['MovieYear'])
    print(insert_stmt,data)
    cursor.execute(insert_stmt,data)
    cnx.commit()
    cnx.close()
    return data