【问题标题】:Cannot load image in django无法在 django 中加载图像
【发布时间】:2013-07-01 03:26:53
【问题描述】:

我是 django 的新手。我试图通过 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''

解决办法是什么?

【问题讨论】:

    标签: python html django


    【解决方案1】:

    您应该将图像路径放在模板上下文中,而不是图像本身:

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

    而且,您的模板语法不正确:

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

    希望您的设置配置正确。仅供参考,请参阅:

    希望对您有所帮助。

    【讨论】:

    • 我已将 settings.py 更改为 MEDIA_ROOT = os.path.join(PROJECT_DIR, 'Images/media') MEDIA_URL = 'localhost:8000/media/admin' 但它无法正常工作 我已保存该图像在我的项目文件夹中的图像目录中
    • 然后,将图片保存在MEDIA_ROOT中。
    • 我不明白你的意思?
    • 我更改了 MEDIA_ROOT = os.path.join(PROJECT_DIR, 'Images') 但仍然无法正常工作
    • 试试MEDIA_ROOT = '/path_on_you_server/images/'MEDIA_URL = '/images/'。之后您必须将图像保存到文件夹'/path_on_you_server/images/'
    猜你喜欢
    • 2014-10-29
    • 2015-10-24
    • 2017-08-01
    • 2020-04-02
    • 2019-05-08
    • 2021-03-09
    • 2019-05-30
    • 2020-01-20
    • 2013-04-12
    相关资源
    最近更新 更多