it-swarm.com.de

python flask bild auf einer html seite anzeigen

Ich versuche, einen Dateinamen eines Bildes zu übergeben und es in einer Vorlage zu rendern. Obwohl ich den tatsächlichen Namen übergebe, wird er nicht auf der Seite angezeigt

@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 )

Zum Beispiel: profilepic_filename = /data/tim/img.jpg Ich habe es versucht

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

Und ich habe es auch versucht

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

Beides hat nicht funktioniert

11
Darren rogers

Ich habe erschaffen people_photo in static Ordner und platzierte ein Bild mit dem Namen shovon.jpg. Von dem application.py Ich habe das Bild als Variable an die Vorlage übergeben und es mit dem Tag img in der Vorlage angezeigt.

Im 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)

Im index.html:

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

Ausgabe:

enter image description here

25
arsho