Flask循环遍历静态目录中的图像

时间:2017-11-19 15:56:22

标签: python flask

我有一个烧瓶网站设置如下:

.flask
   .static
      .images
      .css
   .templates

我的basic.py文件为:

from flask import Flask, render_template

app = Flask(__name__)

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

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

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

在portfolio.html文件中,我希望能够收集images目录中的所有文件,并将它们显示为可点击的网址。

<section class="row">
  {% for image in path_to_folder %}
    <section class="col-md-4 col-sm-6" style="background-color: green;">
      {{ image }}
    </section>
  {% endfor %}
</section>

是否有一种简单的方法可以从images目录中获取所有图像?我可以将图像存储到数组中并将它们作为参数传递给render_template('portfolio.html',images =?“)吗?

1 个答案:

答案 0 :(得分:3)

您只需使用os.listdir即可获取所有文件。

@app.route('/portfolio')
def portfolio():
    images = os.listdir(os.path.join(app.static_folder, "images"))
    return render_template('portfolio.html', images=images)

然后在你的模板中:

<section class="row">
  {% for image in images %}
    <section class="col-md-4 col-sm-6" style="background-color: green;">
      <a href="{{ url_for('static', filename='images/' + image) }}">{{ image }}</a>
    </section>
  {% endfor %}
</section>