服务python和烧瓶不工作的图像

时间:2016-10-11 15:59:43

标签: python flask

我认为,在尝试使其工作时,将此代码减少到最小值: 蟒蛇:

#!/usr/bin/env python
from functools import wraps
from flask import Flask, render_template, session, request, redirect, url_for
from flask_socketio import SocketIO, emit, join_room, leave_room, \
    close_room, rooms, disconnect


async_mode = None

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, async_mode=async_mode)

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


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

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <img src="{{ url_for('index') }}bulboff.gif"/>
    <p>"{{ url_for('index') }}" <p>
</body>
</html>

图像位于静态文件夹中。

它给出了这个错误:

&#34; GET /bulboff.gif HTTP / 1.1&#34; 404

访问页面时。

我尝试了几项设置Flask默认路径,没有url_for等,但仍然没有图片。

我错过了什么?

3 个答案:

答案 0 :(得分:1)

根据flask document

  

要生成静态文件的URL,请使用特殊的static端点   名:

url_for('static', filename='style.css')
     

该文件必须作为static/style.css存储在文件系统中。

在您的情况下,请使用<img src="{{ url_for('static', filename='bulboff.gif') }}">

答案 1 :(得分:0)

如果您将图像放在静态文件夹中,您应该使用以下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <img src="{{ url_for('index') }}static/bulboff.gif"/>
    <p>"{{ url_for('index') }}" <p>
</body>
</html>

或者,您可以更改应用程序的代码并添加以下内容:

@app.route('/bulboff.gif')
def bulboff():
    return open('static/bulboff.gif').read()

答案 2 :(得分:0)

<img src="{{url_for('static', filename='bulboff.gif')}}" />

试试吧。您的文件名可以是静态文件夹中的路径。因此,如果您有filename = \some\path\img.png,它会在static\some\ath\img

中查找img