如何使用 pymongo 和 Flask-Login 的会话?

我正在使用 Flask 和 MongoDB 开发基于 Web 的应用程序。对于数据库连接和操作,我使用的是 pymongo。到目前为止,我成功地进行了用户注册和用户登录,但是当我使用@login_required 装饰器并添加@login_manager.user_loader 时,我的登录已停止工作并且没有出现任何错误。在调试它时,我发现问题是会话 ID。我正在获取会话 ID


@login_manager.user_loader

def load_user(user_id):

    print("user_id",user_id)

    user =User.get_by_id(user_id)

    print(user)

    if user is not None:

        return User(user["_id"])

    else:

        return None

但是如何使用它或使用 pymongo 管理它,就像我尝试使用 session id 获取用户数据一样


user =User.get_by_id(user_id)

我没有得到


鸿蒙传说
浏览 95回答 1
1回答

幕布斯7119047

由于您没有使用 current_user 属性,我认为这是一个很好的方法。我将在我一直在处理的应用程序之后进行解释。首先,我在他登录时注册用户:from flask import Blueprintfrom flask_login import login_user, logout_user, login_requirelogin = Blueprint('Login', __name__)@login.route('/login', methods=['GET', 'POST'])def loginMethod():    ...     db = Database()     user = db.selectIf(...)    login_user(user)@login.route('/logout')@login_required def logout():    logout_user()    .... 当我需要时,我使用 current_user 属性加载用户,如下所示:from flask import Blueprintfrom flask_login import login_required, current_userpage = Blueprint('page', __name__)@page.route('/page', methods=['GET', 'POST'])@login_requireddef openPage():    ...     user = current_user
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python