Python Eve服务图像

Python Eve服务图像,python,flask,static-files,eve,Python,Flask,Static Files,Eve,你好!我有一个RESTAPI,它基于Python Eve框架。我需要提供图像服务,比如简单的Flask应用程序(原因是不需要运行两台服务器)。我将REST API移动到“API”前缀,并为服务静态文件创建简单函数: from flask import send_from_directory import eve app = eve.Eve() @app.route('/images/<path:path>') def serve_static(path): return

你好!我有一个RESTAPI,它基于Python Eve框架。我需要提供图像服务,比如简单的Flask应用程序(原因是不需要运行两台服务器)。我将REST API移动到“API”前缀,并为服务静态文件创建简单函数:

from flask import send_from_directory
import eve

app = eve.Eve()

@app.route('/images/<path:path>')
def serve_static(path):
    return send_from_directory('images', path)

if __name__ == '__main__':
    app.run()
从flask导入从\u目录发送\u
进口夏娃
app=eve.eve()
@app.route(“/images/”)
def SERVER_静态(路径):
从_目录('images',path)返回发送_
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()

但它不工作,给我404错误。当我用更简单的东西替换从目录发送时,比如
返回“Hello”
它工作正常。你知道如何正确实施吗?提前感谢。

由于烧瓶不知道“图像”文件夹在哪里,您应该清楚地指定它。e、 g.从配置中删除

官方文件:

官方的例子是:

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)
@app.route(“/uploads/”)
def下载文件(文件名):
从_目录返回发送_(app.config['UPLOAD_FOLDER'],
文件名,如_attachment=True)

因为flask不知道“image”文件夹在哪里,所以您应该清楚地指定它。e、 g.从配置中删除

官方文件:

官方的例子是:

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)
@app.route(“/uploads/”)
def下载文件(文件名):
从_目录返回发送_(app.config['UPLOAD_FOLDER'],
文件名,如_attachment=True)

我使用flask软件包中的发送文件功能解决了这个问题

这是我的代码:

import os
from flask import send_file, abort, request
import eve

from settings import BASE_DIR

app = eve.Eve()


@app.route('/images')
def serve_images():
    if request.args.get('path'):
        path = os.path.join(BASE_DIR, 'app', 'images', request.args.get('path'))
    else:
        abort(403)
    return send_file(path)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)

这个方法对我非常有用,因为我可以发送文件,这些文件放在flask应用程序的文件夹之外。

我使用flask软件包中的“发送文件”功能解决了这个问题

这是我的代码:

import os
from flask import send_file, abort, request
import eve

from settings import BASE_DIR

app = eve.Eve()


@app.route('/images')
def serve_images():
    if request.args.get('path'):
        path = os.path.join(BASE_DIR, 'app', 'images', request.args.get('path'))
    else:
        abort(403)
    return send_file(path)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)
这个方法对我非常有用,因为我可以发送文件,这些文件放在flask应用程序的文件夹之外