0

トルネードを使い始めたばかりです。インデックスの送信ボタンをクリックして、フォームアクションを介してログインに送信するだけです(これは今のところ機能します)。ただし、投稿されたデータをログインして機能させるのに問題があります。最初の質問は、なぜエラーが発生するのかということです。

 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などのWebページをどのようにレンダリングするのか非常によくわかりません。

構文的には、これもreturn self.write(open("index.html", 'r').read()) 機能しているようです。現在持っているものと比べて、正確には何をするのでしょうか。

助けてくれてありがとう!

4

2 に答える 2

3

インデントは間抜けで、スペースとタブが混在しています。確認に使用python -ttします。

于 2013-02-05T08:17:55.680 に答える
0

あなたがする場合も

class MainHandler(tornado.web.RequestHandler):
      def get(self):
          self.render("index.html")
      def post(self):
          self.render("index.html")

POST用のindex.htmlも提供します。。

于 2013-12-04T01:34:07.650 に答える