路由到烧瓶中的目录

route to directory in flask

我需要像这样从 flask 中的文件夹中公开一些图标:

PROJECT NAME
>> static
  >> assets
      >> icon-16.png
      >> icon-32.png
      >> icon-64.png
      >> icon-80.png
      >> icon-120.png
      >> logo-filled.png
>> templates
  >> commands.html
  >> index.html
  >> taskpane.html
>> app.py

我需要使 assets 可路由,这样我就可以像这样从 url 访问 png 文件: https://pythonlinuxtest.azurewebsites.net/assets/icon-16.png https://pythonlinuxtest.azurewebsites.net/assets/icon-32.png https://pythonlinuxtest.azurewebsites.net/assets/icon-64.png

这是我 app.py 到目前为止的内容:

from flask import Flask
from flask import render_template

app = Flask(__name__)

# @app.route("/")
# def hello():
#     return "Hello, World!"

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

@app.route("/taskpane.html")
def taskpane():
    return render_template("taskpane.html")

@app.route("/commands.html")
def commands():
    return render_template("commands.html")

我不确定如何将 assets 目录添加到 app.py 以便可以访问 png 文件。

我明白了!!但是,如果有人知道更好的方法,请告诉我。

我使用 send_file

将图片添加到 app.py

这里是全部 app.py :)

from flask import Flask
from flask import render_template
from flask.helpers import send_file

app = Flask(__name__)

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

@app.route("/taskpane.html")
def taskpane():
    return render_template("taskpane.html")

@app.route("/commands.html")
def commands():
    return render_template("commands.html")

@app.route("/assets/icon-16.png")
def icon16():
    return send_file("./static/assets/icon-16.png",mimetype='image/png')

@app.route("/assets/icon-32.png")
def icon32():
    return send_file("./static/assets/icon-32.png",mimetype='image/png')

@app.route("/assets/icon-64.png")
def icon64():
    return send_file("./static/assets/icon-64.png",mimetype='image/png')

@app.route("/assets/icon-80.png")
def icon128():
    return send_file("./static/assets/icon-80.png",mimetype='image/png')

@app.route("/assets/logo-filled.png")
def iconlogofilled():
    return send_file("./static/assets/logo-filled.png",mimetype='image/png')

如果有人知道更有效的方法,我会给您答复。谢谢

from flask import Flask
from flask import render_template
from flask.helpers import send_file

app = Flask(__name__)

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

@app.route("/taskpane.html")
def taskpane():
    return render_template("taskpane.html")

@app.route("/commands.html")
def commands():
    return render_template("commands.html")

@app.route("/assets/<file_name>")
def get_image(file_name):
    return send_file(f"./static/assets/{file_name}",mimetype='image/png')

你能试试这个吗