簡體   English   中英

Python-Eve投放圖片

[英]Python-Eve serve images

美好的一天! 我有一個REST API,它基於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()

但這不起作用,並給我404錯誤。 當我將send_from_directory替換為更簡單的東西時,例如return "Hello"它可以正常工作。 知道如何正確實施嗎? 提前致謝。

由於長頸瓶不在“圖像”文件夾所在的位置,因此應明確指定。 例如從配置。

官方文件: send_from_directory

官方示例:

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)

我從flask包中解決了send_file函數的問題。

這是我的代碼:

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應用程序的文件夾之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM