我正在为我的项目使用 webpy 框架。我正在从 main.py 程序的“登录”类登录。我想获取其他类(class)的用户名。我尝试了session并尝试了很长时间。我已经实现了如下所示的 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 !')
我想获取其他类(class)的用户名。我尝试使用 session.username
访问用户名,但显示以下错误。 AttributeError:“ThreadedDict”对象没有属性“username”
最佳答案
我在 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
我还在初始化器字典中做了一个小更改,将用户初始化为匿名,并将登录设置为 false。 感谢安德烈给我这个话题。
关于python - webpy 中的 session - 获取所有类中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382886/