Python Flask:在开发中,如何实现媒体资产的动态路由?

Python Flask:在开发中,如何实现媒体资产的动态路由?,python,flask,Python,Flask,我正在使用Flask开发一个简单的web应用程序 我在文件/文件夹/子文件夹/asset[.pdf |.jpg]中有静态媒体资产(照片、pdf等)。但我希望文件的URL如下所示:files/folder\u subfolder\u asset[.pdf | jpg]。如您所见,实际的路径在文件名中编码 文件夹和子文件夹对于每个图像都是不同的。有很多图片 在生产上,在服务器上,我将处理文件的服务,如何在开发上完成类似的工作 注意:在开发中我正在使用Flask run测试应用程序。如果我需要使用不同

我正在使用Flask开发一个简单的web应用程序

我在
文件/文件夹/子文件夹/asset[.pdf |.jpg]
中有静态媒体资产(照片、pdf等)。但我希望文件的URL如下所示:
files/folder\u subfolder\u asset[.pdf | jpg]
。如您所见,实际的
路径
文件名
中编码

文件夹
子文件夹
对于每个图像都是不同的。有很多图片

生产上,在服务器上,我将处理文件的服务,如何在开发上完成类似的工作

注意:在开发中我正在使用
Flask run
测试应用程序。如果我需要使用不同的东西,请给出建议

您可以尝试使用(应用程序对象或蓝图对象,):

  • static\u url\u path
    –可用于为web上的静态文件指定不同的路径。默认为
    静态文件夹
    文件夹的名称
  • static\u文件夹
    –包含静态文件的文件夹,应在
    static\u url\u路径
    中提供。默认为应用程序根路径中的“静态”文件夹
例如:

您可以将
静态文件夹设置为静态文件目录:
/files/folder/subfolder/asset
,将
静态url\u路径设置为
/files/folder\u asset

from flask import Flask, request, redirect, url_for

app = Flask(__name__,static_folder='files/folder/subfolder/asset/', static_url_path='/files/folder_subfolder_asset')

@app.route('/', methods=['GET'])
def root():
    return redirect(url_for('static', filename='figure.jpeg'))   

if __name__ == '__main__':
    app.run(debug=True)

然后当您转到
http://127.0.0.1:5000
,它将重定向到
http://127.0.0.1:5000/files/folder_subfolder_asset/figure.jpeg
url
已更改为
static\u url\u path

中定义的url。请尝试使用@Tiny。D我阅读了蓝图文档,但不知道如何使用它们来提供图像。想提供一个例子吗?:)从
文件夹/子文件夹/资产[.pdf | jpg]
中拆分
文件夹/子文件夹/资产[.pdf | jpg]
发送静态文件
。但我不熟悉nginx,也不知道如何在nginx.Man中实现这一点。很抱歉,我忘了提到每个图像的
文件夹和
子文件夹总是不同的。这就是我问这个问题的原因。我会尽快编辑它。