Python 烧瓶不工作

Python 烧瓶不工作,python,flask,Python,Flask,我用的是烧瓶。这是我的登录功能: @app.route("/", methods=["GET", "POST"]) def login(): if request.method == "POST" and "imei" in request.form and "password" in request.form: imei = request.form["imei"] password = request.form["password"] worked, name = c

我用的是烧瓶。这是我的登录功能:

@app.route("/", methods=["GET", "POST"])
def login():
if request.method == "POST" and "imei" in request.form and "password" in request.form:
    imei = request.form["imei"]
    password = request.form["password"]
    worked, name = checkDB(imei, password)
    if worked:
        uid = hashlib.sha256(imei.encode('utf-8')).hexdigest()
        u = User(imei, name, password, uid)
        USERS[uid] = u
        login_user(u)
        #return request.args.get("next")
        return redirect(url_for("analyzer")) #THIS DOESENT WORK
    else:
        return redirect(url_for("login") + "?failure=true")
elif request.method == "GET" and request.args.get("failure"):    
    return render_template("auth.html", fail="true")
else:
    return render_template("auth.html", fail="false")
当该行尝试触发(标记为THIS DOESENT WORK的行)时,它将重定向到:
/?next=%2Fwebike%2Fanalyzer

分析仪很简单:

@app.route('/analyzer', methods=['GET'])
@login_required
def analyzer():
    return render_template('index.html')

我做错了什么?如果用户名和密码错误,则一切正常

登录无法正常工作。您已成功重定向到
/analyzer
,但由于所需的
@login\u
装饰程序,会将analyzer方法url追加为
下一个
参数,因此会重定向回您的登录方法

u = User(imei, name, password, uid)

在这里,您不是在执行查找,而是在创建一个新的用户对象。您需要从数据库中获取用户并将其传递给
login\u User
方法,而不是创建新对象

该方法表示,
让用户登录。您应该将实际用户对象传递到此
。但是我正在传递实际的用户对象。我错了什么?“在这里,您没有执行查找,您正在创建一个新的用户对象。您需要从数据库中获取用户,并将其传递给登录用户方法。请参阅。
login\u User(u)
确实传递了
实际用户对象
,因为
u
是实际的用户对象。
u.get\u id()
返回什么?在
login\u user
之后,您希望在哪里看到此运行?在
u=user(imei,name,password,uid)
之后。在我登录用户(u)之后,打印
u
打印
并打印
u.get\u id()
打印
4bff3b8da1bd7ba81a0de577f62a011ed9b446093e649052664004e972461a92
哪个是正确的。该用户在数据库中吗?