我根据我发现的几个不同的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()
答案 0 :(得分:1)
请查看此处提供的示例(http://webpy.org/cookbook/forms),对我来说,似乎只是在做 form.Form(...)并没有真正创建标记,所以请检查你的输出HTML。
基本上它缺少<form name="main" method="post"> ... </form>
包含你的元素(textinput,button)
答案 1 :(得分:1)
您正在使用未定义的'i'变量...尝试使用您为web.input()定义的'f'