使用Flask未定义Dygraph

时间:2014-09-03 19:26:28

标签: flask dygraphs

我正在使用烧瓶并试图让dygraph样本起作用。以下是示例代码(教程页面中的第二个示例:http://dygraphs.com/tutorial.html):

<html>
<head>
<script type="text/javascript"
  src="dygraph-combined.js"></script>
</head>
<body>
<div id="graphdiv2"
  style="width:500px; height:300px;"></div>
<script type="text/javascript">
  g2 = new Dygraph(
    document.getElementById("graphdiv2"),
    "temperatures.csv", // path to CSV file
    {}          // options
  );
</script>
</body>
</html>

这是我的Flask代码(我正在尝试使用render_template()):

from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def render_plot():
    return render_template('sample.html')
if __name__ == '__main__':
    app.run()

当我通过python运行它时,firebug给出了错误“Dygraph未定义”。从行g2 = new Dygraph(

Sample.html在我的文件夹中工作,但是当我从python运行我的烧录代码后尝试从我的URL访问它时,它不起作用。我的文件夹看起来像这样:

FlaskStuff / main.py

FlaskStuff /模板/ sample.html

FlaskStuff / templates / dygraph-combined.js(在我的文件夹中加载sample.html)。

FlaskStuff / JS / dygraph-combined.js

我是Flask的新手。类似的答案并没有帮助我解决这个问题。

2 个答案:

答案 0 :(得分:1)

dygraph-combined.js位于何处?它需要在某个地方才能提供。您最有可能将它放在static文件夹中。在static内对类似文件进行分组是一种相当普遍的做法(例如,cssjs)。

使用此结构

static/
    js/
        dygraph-combined.js

您希望按以下方式更新sample.html

<script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script>

这将允许Flask开发服务器提供文件。您还希望向HTTP服务器添加规则,以直接从/static提供内容。

答案 1 :(得分:0)

你还需要为temperature.csv文件做类似的事情。 (我已将它放在静态文件夹中)

"{{ url_for('static', filename='temperatures.csv') }}", // path to CSV file