加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读