2013-07-10 35 views
7

tôi có một chương trình mà tạo ra một hình ảnh. Bây giờ tôi muốn sử dụng Flask để làm cho hình ảnh này tiếp cận với những người dùng khác, nhưng tôi không thể hiển thị hình ảnh này với đoạn mã sau:Phục vụ hình ảnh với bình

#!/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ẫu hello.html của tôi là:

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

Khi Tôi chạy chương trình này và truy cập vào trang này, tôi thấy điều này:

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 - 

Và trong trình duyệt của tôi, tôi thấy tiêu đề chứ không phải hình ảnh. Chuyện gì vậy?

Bằng cách này, là có một phương pháp tốt hơn để hiển thị một hình ảnh mà không cần gì nữa không? Có lẽ tôi không phải sử dụng mẫu?

+0

Uhm, tôi nghĩ rằng thẻ tiêu đề là missplaced. Nó là một phần của tiêu đề chứ không phải phần thân. – reporter

+0

@reporter: Các _tags_ cho môi trường 'head' và 'yếu tố body' là không bắt buộc, vì vậy không có gì sai với HTML ở trên là. –

Trả lời

7

Bạn có chắc chắn hình ảnh thực sự là ở vị trí ./, ví dụ trong thư mục gốc của dự án của bạn? Trong mọi trường hợp, nó là tốt hơn để sử dụng phương pháp url_for() Flask để xác định URL (xem http://flask.pocoo.org/docs/api/#flask.url_for) Điều này đảm bảo rằng khi bạn di chuyển những thứ xung quanh, các URL không phá vỡ.

+0

Ok, cảm ơn. Tôi đã sử dụng phương thức 'url_for' và nó đã giúp tôi. –

Các vấn đề liên quan