我刚开始使用Tornado。我想要做的就是点击索引上的提交按钮,然后通过表单动作发送到登录页面(目前为止这样做);然而,我无法获得发布的数据登录并使其工作。 第一个问题是,为什么我收到错误:Python /龙卷风 - 为什么我得到错误:自我没有定义?
password = self.get_argument('password', None)
NameError: name 'self' is not defined
这里的蟒蛇至今:
import os
import tornado.web
import tornado.ioloop
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
class LoginHandler(tornado.web.RequestHandler):
def post(self):
useremail = self.get_argument('useremail', None)
password = self.get_argument('password', None)
self.render("login.html")
def main():
application = tornado.web.Application([
(r"/", MainHandler),
(r"/login", LoginHandler),
(r"/css/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(os. path.dirname(__file__), 'css')}),
(r"/pictures/(.*)", tornado.web.StaticFileHandler, {"path": os.path.join(os.path.dirname(__file__), 'pictures')}),
])
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
其次,还有什么看起来错得离谱吗?我很不确定我应该如何呈现网页,例如Login.html和Index.html等。
从句法上看,这似乎也有效:return self.write(open("index.html", 'r').read())
究竟是什么与我目前的做法?
感谢您的帮助!
是的,这工作谢谢你。有没有办法呈现login.html,无论获取或发布的方法?我遇到了另一个问题,如果我目前正在从索引登录,并且我转到url栏并单击enter,我将得到一个405方法不允许的错误。我想解决这个问题的唯一方法是在LoginHandler中添加一个get和post方法,并且有两个'self.render(“login.html”)'(每个都有一个)这似乎过分了.. – JohnZ
关于Tornado能够回答,抱歉。 –