首页 > 解决方案 > Python MySQL不插入字符串变量

问题描述

我只是想在 html 中插入从表单中提取的两个值。也使用 Flask 和 mysql.connector

这是我的 index.html:

<h1>Simple Login Form</h1>

<form action="/signup" method="post">
    <input type="text" name="username" required/>
    <input type="password" name="password" required/>
    <input type="submit"/> </form>

还有我在 python(app.py) 中的一行:

@app.route('/signup', methods=["POST"])
def signup():
    username = str(request.form["username"])
    password = str(request.form["password"])
    cursor = mydb.cursor()
    cursor.execute("INSERT INTO users (username, password) VALUES({},{})".format(username, password))
    #cursor.execute("INSERT INTO users (username, password) VALUES('test','test')")
    mydb.commit()

无论出于何种原因,我在执行第一个游标时出现内部服务器错误,但“#”游标代码工作正常......请有人告诉我这里哪里出错了。

标签: pythonmysql

解决方案


终于让它工作了,就像改变一样简单:

cursor.execute("INSERT INTO users (username, password) VALUES({},{})".format(username, password))

至:

cursor.execute("INSERT INTO users (username, password) VALUES('{}','{}')".format(username, password))

只需将 {}、{} 更改为 '{}'、'{}'

遗憾的是,没有其他方法对我有用,只有这种方法能给我所需的结果。

谢谢迈克斯科蒂


推荐阅读