I am trying to pass a filename of an image and render it on a template, Although I am passing the actual name through it does not display on the 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 ) 

For example: profilepic_filename = /data/tim/img.jpg I have tried

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

And I have also tried

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

Neither of which worked

0

1 Answer

I have created people_photo in static folder and placed an image named shovon.jpg. From the application.py I passed the image as variable to template and showed it using img tag in the template.

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

In index.html:

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

Output:

enter image description here

6