2013-07-10 3 views
7

У меня есть программа, которая генерирует изображение. Теперь я хочу использовать флягу, чтобы сделать эту картину доступной для других пользователей, но я не могу воспроизвести изображение с помощью следующего кода:Обслуживание изображения с флягой

#!/usr/bin/python2 
#coding: utf-8 

from flask import * 
app = Flask(__name__) 

#app.run(host='0.0.0.0') 

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

if __name__ == '__main__': 
    app.run(debug=True,host='0.0.0.0') 

Мой шаблон hello.html является:

<!doctype html> 
<title>Hello from Flask</title> 
<h1>Hello World!</h1> 
<img src="./weather-plot.png"> 

Когда Я запустить эту программу и посетить страницу, я вижу это:

192.168.0.61 - - [10/Jul/2013 10:22:09] "GET/HTTP/1.1" 200 - 
192.168.0.61 - - [10/Jul/2013 10:22:09] "GET /weather-plot.png HTTP/1.1" 200 - 

и в моем браузере я вижу заголовок, но не изображения. Что не так?

Кстати, есть ли лучший способ отобразить картинку без каких-либо других? Может быть, мне не нужно использовать шаблон?

+0

Ухм, я думаю, что тег названия пропущен. Это часть заголовка, а не части тела. – reporter

+0

@reporter: _tags_ для элементов 'head' и' body' являются необязательными, поэтому в HTML выше ничего плохого. –

ответ

7

Уверены ли вы, что изображение действительно находится в месте ./, то есть в корне вашего проекта? В любом случае, лучше использовать метод Flask url_for() для определения URL-адресов (см. http://flask.pocoo.org/docs/api/#flask.url_for). Это гарантирует, что при перемещении объектов URL-адреса не прерываются.

+0

Хорошо, спасибо. Я использовал метод 'url_for', и он мне помог. –

Смежные вопросы