我刚开始使用 Tornado。我想做的就是单击索引上的提交按钮并通过表单操作发送到登录(到目前为止有效);但是,我无法让发布的数据登录并使其正常工作。第一个问题是,为什么我会收到错误消息:
password = self.get_argument('password', None)
NameError: name 'self' is not defined
到目前为止,这是python:
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())
与我目前拥有的相比,这到底是做什么的?
谢谢您的帮助!