首页 > 代码库 > Web.py session用户认证

Web.py session用户认证

调试一个用session来认证用户的程序 大概是这个样子 基本上可以当作webpy session认证的示例程序了

#!/usr/bin/env python#coding=utf-8import webimport timeurls = (    ‘/‘, ‘index‘,    ‘/xml‘, ‘pushxml‘,    ‘/login‘, ‘login‘,    ‘/logout‘, ‘logout‘,)render = web.template.render(‘templates/‘)web.config.debug = Falseapp = web.application(urls, locals())session = web.session.Session(app, web.session.DiskStore(‘sessions‘))      class index():    def GET(self):        try:            if session.logged_in == True:                return ‘<h1>You are logged in</h1><a href="http://www.mamicode.com/logout">Logout</a>‘        except AttributeError:            pass        return ‘<h1>You are not logged in.</h1><a href="http://www.mamicode.com/login">Login now</a>‘def authorize(func):    def logged(*args,**dic):        if session.logged_in==True:            func(*args,**dic)        else:            raise web.seeother(‘/login‘)    return loggedclass pushxml():    # @authorize    def GET(self):        try:            if session.logged_in == True:                web.header(‘Content-Type‘, ‘text/xml‘)                i = web.input(data=http://www.mamicode.com/None)"""            <form action=/login method=POST>                <table id="login">                    <tr>                        <td>User: </td>                        <td><input type=text name=‘user‘></td>                    </tr>                    <tr>                        <td>Password: </td>                        <td><input type="password" name=passwd></td>                    </tr>                    <tr>                        <td></td>                        <td><input type=submit value=http://www.mamicode.com/LOGIN>"""               def POST(self):        login_data = http://www.mamicode.com/web.input()"posted"            print session            raise web.seeother(‘/‘)       class logout():    def GET(self):        try:            session.logged_in = False            session.kill()        except AttributeError:            pass        raise web.seeother(‘/‘)if __name__ == ‘__main__‘:    app.run()

  开始的时候为了方便web.config.debug = True(这是默认值) session总是不能保存 经过相当长时间的纠结发现错误竟然出在这里

web.config.debug = False

如上 关掉debug模式session可以正常保存了 究竟失身么原因我也搞不清楚了 今天才看到 http://webpy.org/cookbook/sessions

sessions doesn’t work in debug mode because it interfere with reloading. see session_with_reloader for more details.

FUCK web.py!!!

 

Web.py session用户认证