Web.py表单不发布?

时间:2011-06-10 13:28:06

标签: python forms login web.py

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

p.s如果我想使用会话,为什么我必须将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()

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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