2015-01-14 6 views
0

방금 ​​web.py를 사용하기 시작했으며 문서를 검토하고 있습니다. 나는 템플릿에서 세션 정보를 사용하려고 그리고 난이 오류가 끝나는 얻을 그러나 여기 http://webpy.org/cookbook/session_in_template을 지시를 따랐다 다음세션이있는 webpy 템플릿 - ThreadedDict 오류

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

나는 아래에 무엇을 포함했다 :

빈/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() 

템플릿/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' 설정을 시도했지만 나는 같은 문제를 얻을.

여기서 어떤 문제가 발생하는지 누구든지 볼 수 있습니까?

감사합니다,

게르

답변

0

는 마침내이 일을 낸 것. Sessions.username은 기본적으로 존재하지 않으므로 정의해야합니다. 나는 이니셜 라이저를 사용하여 설정했다.

session = web.session.Session(app, web.session.DiskStore('sessions'), initializer={'username': 'test_user'})