2013-07-10 25 views
7

Ho un programma che genera un'immagine. Ora voglio usare Flask per rendere questa immagine accessibili ad altri utenti, ma non riesco a visualizzare questa immagine con il seguente codice:Servire l'immagine con il pallone

#!/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') 

Il mio modello è hello.html:

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

Quando ho eseguito questo programma e visitare la pagina, vedo questo:

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 - 

e nel mio browser vedo il titolo, ma non l'immagine. Cosa c'è che non va?

A proposito, c'è un metodo migliore per visualizzare un'immagine senza altro? Forse non devo usare un modello?

+0

Uhm, penso che il tag del titolo sia andato perso. È una parte dell'intestazione e non della sezione del corpo. – reporter

+0

@reporter: i _tags_ per gli elementi 'head' e' body' sono opzionali, quindi non c'è nulla di sbagliato nell'HTML sopra. –

risposta

7

Sei sicuro che l'immagine sia effettivamente nella posizione ./, ovvero nella radice del tuo progetto? In ogni caso, è meglio utilizzare il metodo url_for() di Flask per determinare gli URL (vedere http://flask.pocoo.org/docs/api/#flask.url_for) Questo assicura che quando si spostano le cose, gli URL non si rompono.

+0

Ok, grazie. Ho usato il metodo 'url_for' e mi ha aiutato. –