Flask登录重定向回登录页面

Flask登录重定向回登录页面,flask,pycharm,flask-login,flask-mongoengine,Flask,Pycharm,Flask Login,Flask Mongoengine,我正在使用flask登录和flask mongoengine编写一个简单的flask应用程序,在我更新项目所需的所有python插件之前,一切都很正常。现在flask不会让我登录。当我登录并验证表单时,它会将我返回到登录页面,url:。。。我认为%2F可能与该问题有关 以下是我的登录视图: @bp.route('/login', methods=['GET', 'POST']) def login(): if current_user.is_authenticated:

我正在使用flask登录和flask mongoengine编写一个简单的flask应用程序,在我更新项目所需的所有python插件之前,一切都很正常。现在flask不会让我登录。当我登录并验证表单时,它会将我返回到登录页面,url:。。。我认为
%2F
可能与该问题有关

以下是我的登录视图:

@bp.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.objects(username__exact=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash(_('Invalid username or password'))
            return redirect(url_for('auth.login'))
        login_user(user, remember=form.remember_me.data)
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('main.index')
        return redirect(next_page)
    return render_template('auth/login.html', title=_('Sign In'), form=form)
我正在使用WTForms,我可以确认表单
action=”“

这是根据flask megatutorial改编的,但我使用的是MongoDB。

问题解决了

当我将应用程序从使用SQL转换为MongoDB时,我错误地将load_user函数设置为:

@login.user_loader
def load_user(username):
    return User.objects(username__exact=username).first()
但实际上,load_用户函数需要接受
id
字段作为接口,因此函数应该如下所示:

@login.user_loader
def load_user(id):
    return User.objects.get(id=id)

当您尝试登录时,您会收到什么类型的错误消息?数据库是否被重置,导致用户表被删除,没有更多的有效用户?我没有收到任何错误,这使得这很困难。当我通过调试器运行该函数时,它将获得一个有效的用户。下一页获取值“/”,然后传递给重定向函数。重定向函数将重定向回登录页面,而不是“/index”或“/”页面