Python Tornado不从html加载图像

时间:2016-08-22 19:54:10

标签: python tornado

我有一个html页面,当从firefox加载时它可以工作,但是当它从龙卷风服务器发送时它不会显示图像。 我的龙卷风服务器:

df = pd.DataFrame({'one':['a' , 'b']*5, 'two':['c' , 'd']*5, 'three':['a' , 'd']*5})
map = { 'a' : 'd', 'b' : 'c', 'c' : 'b', 'd' : 'a'}
cols = ['one','two']

def func(s):
    if s.name in cols:
        s=s.map(map)
    return s

print df.apply(func)

我的prop.html:          

>>> cols = ['one', 'two'];
>>> map = { 'a' : 'd', 'b' : 'c', 'c' : 'b', 'd' : 'a'};
>>> mapCols = {k:map for k in cols};
>>> df.replace(to_replace=mapCols,inplace=True);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Q:\Miniconda3\envs\py27a\lib\site-packages\pandas\core\generic.py", line 3352, in replace
    raise ValueError("Replacement not allowed with "
ValueError: Replacement not allowed with overlapping keys and values

有人可以帮助我吗?

非常感谢你。 下面的代码给了我预期的结果

import tornado.ioloop
import tornado.web

class mainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('./prop.html')
application = tornado.web.Application([
    (r"/", mainHandler)
])

if __name__ == "__main__":
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

但是

给了我一个跟随错误:

<head>
<meta charset="UTF-8" />
<meta name="description" content="" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="keywords" content="" />
<title>Title</title>
<style>



</style>
</head>
<body>
<img src="./fig1.jpg" />
</body>

</html>

如何设置此设置?

1 个答案:

答案 0 :(得分:2)

龙卷风不会特意处理图像。

/fig1.jpg是一种资源,由于您尚未为其定义处理程序,因此Tornado不会生成响应。对于生产,您应该使用更好地优化服务静态文件的Web服务器,如nginx。但是,对于开发,您可以告诉Tornado提供如下静态文件:

application = tornado.web.Application([
    (r"/", mainHandler),
    (r"/static/(.*)", tornado.web.StaticFileHandler, {
        "path": "/your/static/folder"
    }),
])

然后,您可以更新HTML:

<img src="/static/fig1.jpg" />

或者更好:

<img src="{{ static_url("fig1.jpg") }}" />