2013-07-10 10 views
7

Mam program, który generuje obraz. Teraz chcę użyć kolby uczynić ten obraz dostępny dla innych użytkowników, ale nie mogę wyświetlić ten obraz za pomocą następującego kodu:Obraz serwowania z kolbą

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

Mój szablon hello.html jest:

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

Kiedy Uruchomiłem ten program i odwiedziłem stronę, widzę to:

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 - 

I w przeglądarce widzę tytuł, ale nie obraz. Co jest nie tak?

Nawiasem mówiąc, czy istnieje lepsza metoda wyświetlania obrazu bez niczego innego? Może nie muszę używać szablonu?

+0

Uhm, myślę, że znacznik tytułu jest nieprawidłowo rozproszony. Jest częścią nagłówka, a nie części ciała. – reporter

+0

@reporter: Elementy _tags_ dla elementów 'head' i' body' są opcjonalne, więc nie ma nic złego w powyższym kodzie HTML. –

Odpowiedz

7

Czy jesteś pewien, że obraz rzeczywiście znajduje się w lokalizacji ./, tzn. W katalogu głównym projektu? W każdym przypadku lepiej jest użyć metody Flask'a do sprawdzania adresów URL (zobacz http://flask.pocoo.org/docs/api/#flask.url_for). Dzięki temu adresy URL nie przerywają się.

+0

OK, dzięki. Użyłem metody 'url_for' i to mi pomogło. –

Powiązane problemy