加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Flask:如何获取动态生成的图像文件的URL?

发布时间:2020-12-20 12:20:48 所属栏目:Python 来源:网络整理
导读:from flask import Flask,redirect,url_forapp = Flask(__name__)@app.route('/')def index(): generate_img("test.jpg"); return 'img src=' + url_for(filename='test.jpg') + '' generate_img()将随机图像输出到当前目录(与此脚本相同的文件夹). 我得到40
from flask import Flask,redirect,url_for

app = Flask(__name__)
@app.route('/')
def index():
        generate_img("test.jpg");
        return '<img src=' + url_for(filename='test.jpg') + '>'

generate_img()将随机图像输出到当前目录(与此脚本相同的文件夹).

我得到404,我导航到mydomain.com/test.jpg但它不在那里.

解决方法

假设实际生成了图像(也就是调用了index()),404的原因是没有指向图像的路径,所以Flask会告诉你没有mydomain.com/test.jpg .像Apache或Nginx这样的静态网络服务器默认会映射从根到URL的路径,但普通的Flask / Werkzeug / WSGI设置不会这样做.

也许你想创建一个直接返回图像的资源?

编辑:类似的东西应该能够提供图像.

@app.route("/imgs/<path:path>")
def images(path):
    generate_img(path)
    fullpath = "./imgs/" + path
    resp = flask.make_response(open(fullpath).read())
    resp.content_type = "image/jpeg"
    return resp

EDIT2:当然,generate_img可能会被重写,因此它永远不会写入磁盘,而是直接返回图像数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读