Web.py session用户认证

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

#!/usr/bin/env python
#coding=utf-8
import web
import time

urls = (
    '/', 'index',
    '/xml', 'pushxml',
    '/login', 'login',
    '/logout', 'logout',
)
render = web.template.render('templates/')
web.config.debug = False
app = 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 '

You are logged in

Logout' except AttributeError: pass return '

You are not logged in.

Login now' def authorize(func): def logged(*args,**dic): if session.logged_in==True: func(*args,**dic) else: raise web.seeother('/login') return logged class pushxml(): # @authorize def GET(self): try: if session.logged_in == True: web.header('Content-Type', 'text/xml') i = web.input(data=None) return render.response(i.data) except AttributeError: pass class login(): def GET(self): try: session.logged_in = False except AttributeError: pass return """
User:
Password:
""" def POST(self): login_data = web.input() if login_data.user == 'a' and login_data.passwd == 'a': session.logged_in = True print "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!!!

 

转载于:https://www.cnblogs.com/51reboot/p/4006029.html

你可能感兴趣的:(Web.py session用户认证)