微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 FLASK 中的本地文件夹读取数据

如何解决从 FLASK 中的本地文件夹读取数据

我正在使用 FLASK 构建 Web API,我想读取 data 文件夹中的一些图像

venv/data/cartes/carte1.png
                 carte2.png
                 carte3.png
                 carte4.png

为了在 html 文件 index.html显示它们并使用 javascript 循环它们:

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

我尝试使用它,但它给出了错误 GET LINK... not found:

app.config["CLIENT_IMAGES"] = "/data/cartes"

@app.route("/get-image/<image_name>",methods=['GET','POST'])
def get_image(image_name):

    try:
        return send_from_directory(app.config["CLIENT_IMAGES"],filename=image_name,as_attachment=True)
    except FileNotFoundError:
        print("failure")
        abort(404)

解决方法

根据文档:
(https://flask.palletsprojects.com/en/1.0.x/api/#flask.send_from_directory)

@app.route('/get-image/<path:image_name>')
def get_image(image_name):
    return send_from_directory('/data/cartes',image_name,as_attachment=True)

您可以在此处找到更多示例:
https://www.programcreek.com/python/example/65747/flask.send_from_directory

,

您应该为此使用静态目录: https://flask.palletsprojects.com/en/2.0.x/tutorial/static/

使用 ZStack { LinearGradient(gradient: Gradient(colors: [Color.green,Color.yellow,Color.orange,Color.red,Color.purple]),startPoint: .bottom,endPoint: .top) GeometryReader { metrics in Circle() .stroke(Color.white,lineWidth: 2) .frame(minHeight: 0,maxHeight: metrics.size.height) .foregroundColor(Color.clear) .position(x: metrics.size.width / 2,y: metrics.size.height * (CGFloat(10) / CGFloat(11))) } } .cornerRadius(7.5) .frame(minWidth: 0,maxWidth: 15) ,您可以生成该目录中任何文件的相对路径。

静态目录存在,所以公共文件和服务器端代码文件有明显区别。

如果你想在 html 文件中包含图像,你可以在模板中使用它们

url_for

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。