带有会话的 webpy 模板 - ThreadedDict 错误
webpy template with session - ThreadedDict error
我刚刚开始使用 web.py 并正在阅读文档。我正在尝试在模板中使用会话信息并已按照此处的说明进行操作 http://webpy.org/cookbook/session_in_template 但是我收到以下结尾的错误:
AttributeError: 'ThreadedDict' object has no attribute 'username'
127.0.0.1:53865 - - [14/Jan/2015 22:55:44] "HTTP/1.1 GET /" - 500 Internal Server Error
我尝试使用的代码来自这个例子:http://webpy.org/docs/0.3/sessions
我已包含以下内容:
bin/login.py
import web
urls = (
'/', 'Index',
'/login', 'Login',
'/logout', 'Logout'
)
web.config.debug = False
app = web.application(urls, locals())
session = web.session.Session(app, web.session.DiskStore('sessions'))
class Index:
def GET(self):
if session.get('logged_in', False):
render = web.template.render('templates', globals={'context': session})
return render.logout()
return '<h1>You are not logged in</h1><a href="/login">Login now</a>'
class Login:
def GET(self):
session.logged_in = True
raise web.seeother('/')
class Logout:
def GET(self):
session.logged_in = False
raise web.seeother('/')
if __name__ == '__main__':
app.run()
templates/logout.html
<html>
<body>
<span>You are logged in as <b>$context.username</b></span>
<a href="/logout">Logout</a>
</body>
</html>
我已经尝试按照 WebPy Sessions with Templates 中的建议在全局变量中设置 session['username'] = 'CRC'
,但我遇到了同样的问题。
谁能看出这里出了什么问题?
谢谢,
德国
我终于弄明白了。 Sessions.username 默认不存在,需要定义。我使用初始化程序来设置它。
session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'username': 'test_user'})
我刚刚开始使用 web.py 并正在阅读文档。我正在尝试在模板中使用会话信息并已按照此处的说明进行操作 http://webpy.org/cookbook/session_in_template 但是我收到以下结尾的错误:
AttributeError: 'ThreadedDict' object has no attribute 'username'
127.0.0.1:53865 - - [14/Jan/2015 22:55:44] "HTTP/1.1 GET /" - 500 Internal Server Error
我尝试使用的代码来自这个例子:http://webpy.org/docs/0.3/sessions
我已包含以下内容:
bin/login.py
import web
urls = (
'/', 'Index',
'/login', 'Login',
'/logout', 'Logout'
)
web.config.debug = False
app = web.application(urls, locals())
session = web.session.Session(app, web.session.DiskStore('sessions'))
class Index:
def GET(self):
if session.get('logged_in', False):
render = web.template.render('templates', globals={'context': session})
return render.logout()
return '<h1>You are not logged in</h1><a href="/login">Login now</a>'
class Login:
def GET(self):
session.logged_in = True
raise web.seeother('/')
class Logout:
def GET(self):
session.logged_in = False
raise web.seeother('/')
if __name__ == '__main__':
app.run()
templates/logout.html
<html>
<body>
<span>You are logged in as <b>$context.username</b></span>
<a href="/logout">Logout</a>
</body>
</html>
我已经尝试按照 WebPy Sessions with Templates 中的建议在全局变量中设置 session['username'] = 'CRC'
,但我遇到了同样的问题。
谁能看出这里出了什么问题?
谢谢,
德国
我终于弄明白了。 Sessions.username 默认不存在,需要定义。我使用初始化程序来设置它。
session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'username': 'test_user'})