0

我根据我发现的几个不同的 web.py 示例编写了以下内容,但我无法让登录页面发布,任何想法为什么我的代码是如此 foobar?

ps 还有为什么如果我想使用会话,我必须将 web.config.debug 设置为 false?

import web 
import db 
from web import form


login = form.Form(
    form.Textbox('username'),
    form.Password('password'),
    form.Button('Login'), )

urls = (
    '/', 'Index',
    '/login', 'Login',
    '/home', 'Home', )

web.config.debug = False 
app = web.application(urls, globals())
session = web.session.Session(app, web.session.DiskStore('sessions'))


class Login:
    def GET(self):
        f = login()
        return render.register(f)

    def POST(self):
        f = web.input()
        check = db.db_query('select * from users where username=? and password=?', (i.username, i.password))
        if check:
            session.loggedin = True
            session.username = i.username
            raise web.seeother('/home')
        else: return render.base("Those login details don't work.")


class Index:
    def GET(self):
        return 'index'

class Home:
    def GET(self):
        return 'home'


if __name__ == '__main__':
    app.run()
4

2 回答 2

1

请检查此处提供的示例(http://webpy.org/cookbook/forms),对我来说,似乎只是执行form.Form(...)并没有真正创建标签,所以请检查您的输出 HTML。
基本上它缺少<form name="main" method="post"> ... </form>包含您的元素(文本输入,按钮)

于 2011-06-27T13:32:13.617 回答
1

您正在使用未定义的“i”变量...尝试使用您为 web.input() 定义的“f”

于 2014-01-14T12:53:15.157 回答