4

私はジャンゴが初めてです。HTML(graph.html)から画像を読み込もうとしました。views.py インクルード

def avg_duration_vs_time_of_day(request):
    figName="figGraph.png"
    path="Telecom/Images/"+figName
    day = [1, 2, 3, 4]
    query = "select time_of_day,avg(duration) from fact_table group by time_of_day"
    avg_call_day = connect(query)
    import matplotlib.pyplot as plt
    plt.figure(figsize = (4,4))
    plt.xlabel("Time of Day",fontdict={'fontsize':8})
    plt.ylabel("Average Call Duration in seconds",fontdict={'fontsize':8}) 
    plt.title("Average Call Versus Time of Day",fontdict = {'fontsize':8})
    plt.plot(day,avg_call_day,color='green', linestyle='solid',linewidth=1, marker='o',markerfacecolor='blue', markersize=0)
    plt.bar(day,avg_call_day,width=0.2,align='center')
    plt.savefig(path)
    image_data = open(path, "rb").read()
    context = { 'image_data': image_data }    
    return render_to_response('welcome/graph.html', context)

graph.html に含まれるもの

<div>
<img src="{% 'views.avg_duration_vs_time_of_day.image_data' %} " />
</div>

しかし、画像はブラウザにロードできず、エラーは

TemplateSyntaxError at /graph/
Invalid block tag: ''views.avg_duration_vs_time_of_day.image_data''

解決策は何ですか?

4

1 に答える 1

2

画像自体ではなく、テンプレート コンテキストに画像パスを配置する必要があります。

context = { 'image_path': path }    
return render_to_response('welcome/graph.html', context)

また、テンプレートの構文が正しくありません:

<div>
<img src="{{ image_path }}"/>
</div>

設定が適切に構成されていることを願っています。参考までに、次を参照してください。

それが役立つことを願っています。

于 2013-07-03T12:35:01.877 に答える