【问题标题】:session in webpy - getting username in all classeswebpy中的会话-在所有类中获取用户名
【发布时间】:2011-11-15 00:32:06
【问题描述】:

我正在为我的项目使用 webpy 框架。我正在从 main.py 程序的“登录”类登录。我想获得其他班级的用户名。我尝试了 session 并尝试了很长时间。我已经实现了如下所示的会话。

store = web.session.DiskStore('sessions')
session = web.session.Session(app,store,initializer={'login': 0,'privilege': 0})

在我的 main.py 登录类中,当用户提交用户名和密码时,以下代码将起作用。(这是我的登录类的 post 方法 0f)。

class login:
    def POST(self):
            i = web.input(form_submit="Login")
            authdb = sqlite3.connect('database/users.db')
            conn = authdb.cursor()
            if i.form_submit=='Login':
                check = conn.execute('select * from user_details where username=?and password=?', (i.username, i.password))
                n=check.fetchall()
                if len(n)!=0:
                        session.loggedin = True
                        session.username = i.username
            return render.home('Home')
                else: return render.display('Wrong username or password !')

我想获得其他班级的用户名。我尝试使用 session.username 访问用户名,但它显示以下错误。 AttributeError: 'ThreadedDict' object has no attribute 'username'

【问题讨论】:

    标签: python session post web.py


    【解决方案1】:

    我在我的 main.py 程序中进行了以下更改。

    所做的改变:而不是仅仅给予

    session = web.session.Session(app,store,initializer={'login': 0,'privilege': 0,'user':'anonymous','loggedin':False}) 
    

    我添加了以下代码行,

    if web.config.get('_session') is None:
        session = web.session.Session(app,store,initializer={'login': 0,'privilege': 0,'user':'anonymous','loggedin':False})
        web.config._session = session
    else:
        session = web.config._session
    

    我还在初始化器字典中做了一个小改动,将用户初始化为匿名,登录为假。 感谢 Andrey 为我提供线索。

    【讨论】:

      【解决方案2】:

      只需在会话的initializerdict 中提供loggedinusername 的默认值。当未设置这些属性(即用户未登录时)并且您尝试访问它们时,似乎会出现该错误。

      【讨论】:

      • 感谢 Andrey 的建议.. 3 天后我终于得到了解决方案..!
      • @Unni,不客气!开始使用 webpy 时,我遇到了完全相同的问题。
      猜你喜欢
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 2019-08-26
      • 2014-04-04
      • 1970-01-01
      • 2012-06-10
      相关资源
      最近更新 更多