Python 我对sql查询don´有问题;不要在烧瓶里工作
我尝试运行该代码,但sql查询有问题,但如果在mysql workbeck中运行查询,它就会工作Python 我对sql查询don´有问题;不要在烧瓶里工作,python,mysql,flask,flask-mysql,Python,Mysql,Flask,Flask Mysql,我尝试运行该代码,但sql查询有问题,但如果在mysql workbeck中运行查询,它就会工作 app.config['MYSQL_HOST'] = "localhost" app.config['MYSQL_USER'] = "root" app.config['MYSQL_PASSWORD'] = "" app.config['MYSQL_DB'] = "inventario_bodega" mysql = MySQL(app) @app.route("/login", methods=
app.config['MYSQL_HOST'] = "localhost"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = ""
app.config['MYSQL_DB'] = "inventario_bodega"
mysql = MySQL(app)
@app.route("/login", methods=["POST"])
def login():
try:
data = request.json
user = data["user"]
password = data["password"]
cur = mysql.connection.cursor()
#thats part don´t work
cur.execute("SELECT * FROM usuarios WHERE usuario = %s", (user))
data = cur.fetchone()
cur.close()
if(not (data == [])):
if(data[6] == password):
encoded_jwt = jwt.encode(
{'datos': data}, app.config['SECRET_KEY'], algorithm='HS256')
return encoded_jwt, 200
else:
return "Usuario y/o Contraseña incorrecta", 401
else:
return "Usuario y/o Contraseña incorrecta", 401
except:
return "Error al iniciar sesion", 500
但不要告诉我一个错误,只告诉我500个错误
cur.exectute()需要一个元组或参数列表。看起来您正在尝试前者,这是Python中的一种边缘情况,其中逗号区分用于形成元组的括号或用于控制求值顺序的括号
改变
cur.execute("SELECT * FROM usuarios WHERE usuario = %s", (user))
到
您能更好地定义“不工作”吗?这不是一个非常详细的诊断。您的查询有什么问题?MySQL身份验证详细信息(用户、密码、数据库等)在哪里?我猜应该是
usuario='%s'“
请注意附加的单引号。但是,您应该真正致力于跟踪原始错误消息。您可以轻松地将代码包装在try…except中,并在某处记录/打印异常。您已经尝试了..除了,您只是没有对原始异常执行任何操作。另一个猜测是cur.execute
的seconds参数必须是一个iterable,在这种情况下(user)
应该是(user,)
,将其转换为元组。
cur.execute("SELECT * FROM usuarios WHERE usuario = %s", (user,))