web-dev-qa-db-fra.com

python flask affiche l'image sur une page html

J'essaie de transmettre le nom de fichier d'une image et de le rendre sur un modèle. Bien que je transmette le nom actuel, il ne s'affiche pas sur la page.

@app.route('/', methods=['GET','POST'])
@app.route('/start', methods=['GET','POST'])
def start():
person_to_show = 'tim'
profilepic_filename = os.path.join(people_dir, person_to_show, "img.jpg")
return render_template('start.html',profilepic_filename  =profilepic_filename )

Par exemple: profilepic_filename = /data/tim/img.jpg j'ai essayé

{{profilepic_filename}}
<img src="{{ url_for('data', filename='tim/img.jpg') }}"></img>

Et j'ai aussi essayé

<img src="{{profilepic_filename}}"></img>

Qui n'a pas fonctionné

11
Darren rogers

J'ai créé people_photo dans le dossier static et a placé une image nommée shovon.jpg. Du application.py J'ai transmis l'image en tant que variable au modèle et je l'ai affichée à l'aide de la balise img du modèle.

Dans application.py:

from flask import Flask, render_template
import os

PEOPLE_FOLDER = os.path.join('static', 'people_photo')

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = PEOPLE_FOLDER

@app.route('/')
@app.route('/index')
def show_index():
    full_filename = os.path.join(app.config['UPLOAD_FOLDER'], 'shovon.jpg')
    return render_template("index.html", user_image = full_filename)

Dans index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Index</title>
</head>
<body>
    <img src="{{ user_image }}" alt="User Image">
</body>
</html>

Sortie:

enter image description here

25
arsho