我剛開始使用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能夠回答,抱歉。 –