首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python-Eve提供图像

Python-Eve提供图像
EN

Stack Overflow用户
提问于 2015-10-29 02:26:21
回答 2查看 685关注 0票数 1

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

代码语言:javascript
复制
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",它可以正常工作。知道如何正确地实现它吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-29 05:05:59

我用烧瓶包装的send_file函数来解决这个问题。

这是我的密码:

代码语言:javascript
复制
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)

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

票数 0
EN

Stack Overflow用户

发布于 2015-10-29 04:59:52

因为烧瓶不要在哪里是‘图像’文件夹,你应该明确指定它。从配置上看。

官方文件:目录

官方的例子:

代码语言:javascript
复制
@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename, as_attachment=True)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33404936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档