Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改用户';在Flask上注销时为布尔值_Python_Flask - Fatal编程技术网

Python 更改用户';在Flask上注销时为布尔值

Python 更改用户';在Flask上注销时为布尔值,python,flask,Python,Flask,每次新用户连接到服务器时,我都会得到一个用户列表,这些用户会刷新以在我的页面中显示。为此,我使用布尔值,每次用户将布尔值更改连接到True时,我的列表只查找布尔值为True的用户。我现在尝试在他们注销时将布尔值改回False。我该怎么做 @app.route("/sign-in", methods=["GET", "POST"]) def signin(): form = forms.SignInForm()

每次新用户连接到服务器时,我都会得到一个用户列表,这些用户会刷新以在我的页面中显示。为此,我使用布尔值,每次用户将布尔值更改连接到True时,我的列表只查找布尔值为True的用户。我现在尝试在他们注销时将布尔值改回False。我该怎么做

@app.route("/sign-in", methods=["GET", "POST"])
def signin():
    
    form = forms.SignInForm()
    if flask.request.method == "POST":
        if form.validate_on_submit():
            username = form.username.data
            password = form.password.data
    
            # Retrieve the user that matches this username
            user = models.User.query.filter_by(name=username).first()
            print(user.boolean)

            # Check the provided password against the user's one
            if user is not None and user.password == password:
                flask_login.login_user(user)
                flask.flash(f"{user.name} logged in successfully !", "success")
                idn = user.id
                user.boolean = True
                db.session.commit()
                print(user.boolean)
                return flask.render_template('user_page.html', user=user)
            else:
                flask.flash("Something went wrong.", "danger") # Put the message into the flashed messages
                # To retrieve those messages: flask.get_flashed_messages()

    return flask.render_template("signin.html", form=form)

@app.route("/sign-out", methods=["GET"])
def signout():
    flask_login.logout_user()
    return flask.redirect('/sign-in')

将其放入签出路线:

@app.route("/sign-out", methods=["GET"])
def signout():
    user = models.User.query.filter_by(id=current_user.id).first()
    user.boolean = False
    db.session.commit()

    flask_login.logout_user()
    return flask.redirect('/sign-in')

如果
注销用户()
正在工作,它就不知道当前用户在这个上下文中是什么。尝试登录。当前用户可以登录。如果我的回答对你有帮助,如果你接受,我将不胜感激;)