如何将变量作为字符串传递到 HTML 中(不带最后 4 个字符)

问题描述 投票:0回答:2

我正在尝试使用 Flask 在我的网站上显示图像。我有一个 for 循环,它迭代在“静态”目录中找到的图像,但我也想在图像底部显示图像的名称。目前图像的名称显示为“image.jpg”,但我希望删除“.jpg”。知道我该怎么做吗?

这是我的app.py

from flask import Flask, render_template, flash, url_for
import os

app = Flask(__name__)


@app.route('/')
def hello_world():
    return render_template("home.html")

@app.route('/select.html')
def select():
  imagelist = os.listdir(os.path.join(app.static_folder,"images"))
  return render_template("select.html", imagelist=imagelist)
  
@app.route('/versus.html')
def versus():
  return render_template("versus.html")
  
if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True)

这是 html 模板,其中有 for 循环

<!DOCTYPE html>
<html>
  <head>
    <title>Disney Favorites</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous">
    <style>
      .center {
        display: block;
        margin-left: auto;
        margin-right: auto;
        width: 50%;
      }
      .centre {
        text-align: center;
      }
    </style>
  </head>
  <body>
      <h1 style= "font-size: 25px" class="text-center">Click on your favorite animated Disney canon movie</h1>
      <section>
        {% for image in imagelist %}
        <div class="centre">
          <button type="submit">
          <img class="center" src="{{ url_for('static', filename='images/' + image) }}">
          </img>
          <p>{{image}}</p>
          </button>
        </div>
        {% endfor %}
      </section>
python html flask variables
2个回答
0
投票

你必须使用过滤器:

<p>{{image|replace(".jpg", "")}}</p>

0
投票

这是一个懒惰的问题。字符串是一种基本数据类型,通过字符串切片 (

filename[:4]
) 删除固定数量的字符,而filename.remove_suffix(".jpg")
字符串方法
通常是初学者教程的一部分,或者至少通过查看文档很容易发现。

© www.soinside.com 2019 - 2024. All rights reserved.