【问题标题】:Get _id value using python cork使用python cork获取_id值
【发布时间】:2015-05-22 05:57:18
【问题描述】:

对于曾经/正在使用 Cork 并且知道它在内部如何工作的人来说,这是一个简单的问题。 基本上在 Cork.py 脚本中,当创建 User() 时,它会在这一行中验证这个 _id:

    if session is not None:
        try:
            self.session_creation_time = session['_creation_time']
            self.session_accessed_time = session['_accessed_time']
            self.session_id = session['_id']
        except:
            pass

session['_id'] 不存在,我在会话中看到的是用户名而不是 _id,我希望该 _id 用于在我的集合上创建一些 DBRef。

查看 Cork.py 和 mongodb_backend.py 的代码,我没有看到在会话中存储 _id 的任何内容。

谁能帮我解决这个问题?我应该修改软木库吗?

最简单的响应是进行自己的查询并使用用户名请求 _id,但如果我可以封装 _id 并将该值包含在 User() 类中,这没有任何意义。

提前致谢!

【问题讨论】:

  • 如果您在 StackOverflow 上没有收到任何回复,您可能还想发布到 Cork issue tracker 列表。

标签: python mongodb bottle


【解决方案1】:

cork.py - 在登录功能中:

        if username in self._store.users:
        if self._verify_password(username, password,
                self._store.users[username]['hash']):
            # Setup session data
            usr = self._store.users[username]
            self._setup_cookie(username, usr["_id"])

在 _setup_cookie 中:

    def _setup_cookie(self, username, _id):
    """Setup cookie for a user that just logged in"""
    session = self._beaker_session
    session['username'] = username
    session['_id'] = _id

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 2016-11-12
    • 2016-10-11
    • 1970-01-01
    • 2015-11-27
    • 2014-10-14
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多