【发布时间】:2019-11-12 20:53:34
【问题描述】:
我尝试运行该代码,但我的 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=["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 错误
【问题讨论】:
-
你能更好地定义“不起作用”吗?这不是一个非常详细的诊断。
-
您的查询有什么问题?
-
MySQL 身份验证详细信息(用户、密码、数据库等)在哪里?
-
我的 猜测 应该是
usuario = '%s'"注意额外的单引号。但是您应该真正致力于追踪原始错误消息。您可以轻松地将代码包装在 try...except 中并在某处记录/打印异常。你已经尝试过了..除了,你只是没有对原始异常做任何事情。 -
另一个猜测是
cur.execute的 seconds 参数必须是可迭代的,在这种情况下(user)应该是(user,),将其变成一个元组。
标签: python mysql flask flask-mysql