1

フラスコとjinja2を使用したhighchartsの動作デモを取得できないようです。ページを開くと、これら3つのエラーが発生します。JavaScriptを使用して、Pythonコードがグラフをレンダリングするために提供するjsonオブジェクトを呼び出すつもりです。

Uncaught TypeError: undefined is not a function highstock.js:287
Uncaught TypeError: Cannot read property 'prototype' of undefined exporting.js:9
Uncaught TypeError: Object [object Object] has no method 'highcharts' 127.0.0.1:32

これがテンプレートをレンダリングする私のPythonコードです

@app.route('/')
def route():
    return render_template('login.html')

highchartsのスクリプトsrcとjqueryをlayout.htmlのブロックに配置し、login.htmlにグラフを作成する関数を配置しました。

これはlayout.htmlです

<title>Flaskr</title>
{% block head %}
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
{% endblock %}
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
<div class=page>
<h1>Flaskr</h1>
<div class=metanav>

</div>
{% for message in get_flashed_messages() %}
<div class=flash>{{ message }}</div>
{% endfor %}
{% block body %}{% endblock %}
</div>

これは、コードをレンダリングしようとしている私のlogin.htmlです。

{% extends "layout.html" %}
{% block body %}
<h2>Login</h2>
{% if error %}<p class=error><strong>Error:</strong> {{ error }}{% endif %}
<form action="" method=post>
<dl>
  <dt>Username:
  <dd><input type=text name=username>
  <dt>Password:
  <dd><input type=password name=password>
  <dd><input type=submit value=Login>
</dl>
</form>
<script type="text/javascript">
$(document).ready(function() {
$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-ohlc.json&callback=?', function(data) {

    // create the chart
    $('#container').highcharts('StockChart', {


        rangeSelector : {
            selected : 2
        },

        title : {
            text : 'AAPL Stock Price'
        },

        series : [{
            type : 'ohlc',
            name : 'AAPL Stock Price',
            data : data,
            dataGrouping : {
                units : [[
                    'week', // unit name
                    [1] // allowed multiples
                ], [
                    'month', 
                    [1, 2, 3, 4, 6]
                ]]
            }
        }]
    });
});
});
</script>
<div id="container" style="height: 500px; min-width: 500px"></div>
{% endblock %}

私は何が間違っているのですか?また、これを修正して動作するデモを取得するにはどうすればよいですか?

4

1 に答える 1

4

最初にjQueryをロードし、次にHighstockをロードします。以下を参照してください。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
于 2013-03-25T11:09:06.193 に答える