web-dev-qa-db-ja.com

python flask htmlページに画像を表示する

画像のファイル名を渡してテンプレートにレンダリングしようとしていますが、実際の名前を渡していますがページには表示されません

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

例:profilepic_filename = /data/tim/img.jpg試しました

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

そして私も試しました

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

どちらも機能しませんでした

11
Darren rogers

people_photostaticフォルダーに作成し、shovon.jpgという名前の画像を配置しました。 application.pyから、テンプレートに変数として画像を渡し、テンプレートでimgタグを使用してそれを示しました。

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)

index.html

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

出力:

enter image description here

25
arsho