python – 无法让tornado staticfilehandler工作
发布时间:2020-12-20 11:33:50 所属栏目:Python 来源:网络整理
导读:为什么这不起作用: application = tornado.web.Application([(r"/upload.html",tornado.web.StaticFileHandler, {"path":r"../web/upload.html"}),]) if __name__ == "__main__": print "listening" http_server = tornado.httpserver.HTTPServer(applicat
为什么这不起作用:
application = tornado.web.Application([(r"/upload.html",tornado.web.StaticFileHandler, {"path":r"../web/upload.html"}),]) if __name__ == "__main__": print "listening" http_server = tornado.httpserver.HTTPServer(application) http_server.listen(8888) tornado.ioloop.IOLoop.instance().start() 打 http://localhost:8888/upload.html throws: TypeError: get() takes at least 2 arguments (1 given) ERROR:tornado.access:500 GET /upload.html (::1) 6.47ms 我试图在互联网上搜索,但似乎我的用法是完全正确的. 解决方法
您有两种方法可以解决此错误.
>添加../web/目录的所有文件. Tornado不处理单个文件. application = tornado.web.Application([(r"/(.*)", tornado.web.StaticFileHandler, {"path":r"../web/"}),]) >您可以渲染HTML传递文件作为输入.您需要为每个HTML文件创建一个处理程序. import tornado.web import tornado.httpserver class Application(tornado.web.Application): def __init__(self): handlers = [ (r"/upload.html",MainHandler) ] settings = { "template_path": "../web/",} tornado.web.Application.__init__(self,handlers,**settings) class MainHandler(tornado.web.RequestHandler): def get(self): self.render("upload.html") def main(): applicaton = Application() http_server = tornado.httpserver.HTTPServer(applicaton) http_server.listen(8888) tornado.ioloop.IOLoop.instance().start() if __name__ == "__main__": main() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |