我正在尝试在页面中渲染图像。我将图像的本地URL存储在数据库中,以便可以在html文件中获取该URL,从而显示图像。但是发生的是该图像没有显示。
我单独打开了html文件,并且图像已成功渲染,但是在python代码中运行并运行服务器时,图像出现了问题。
这是数据库声明(python代码)的一项示例
cable1 = SectionItem(
name='Remax',
price='$3.99',
description='AUX Metal Cable - 3.5mm - 100Cm Male To Male',
image_url='img/cables/cable1.jpg',
category=cables
)
这很好。
这是用于渲染图像的SQLAlechemy
from flask import Flask, render_template, request, redirect, url_for,
flash
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database import Base
from database import Accessory, AccessorySection, SectionItem
app = Flask(__name__)
engine = create_engine('sqlite:///mobilystore.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
@app.route('/')
@app.route('/mobily')
def mobilystore():
all_cables = session.query(SectionItem).filter(
SectionItem.store_id == 1).all()
return render_template(
'mainpage.html', all_cables=all_cables)
if __name__ == '__main__':
app.debug = True
app.run(host='0.0.0.0', port=5000)
服务器也可以在终端中正常运行。
这是我的模板文件夹中的html文档
<html>
<body>
<h1>Mobily Store</h1>
</br>
{% for i in all_cables %}
<div>
<img src="{{i.image_url}}" alt="cable img">
<p> {{i.description}} </p>
<p> {{i.price}} </p>
</br>
</div>
{%endfor%}
</body>
</html>
显示价格和说明,但不显示图像。
请注意,我将图像放在模板文件夹内的img文件夹中(同一文件夹包含我的html文件)。
这是github上的my-project,可为您提供完整的见识
答案 0 :(得分:0)
您必须将templates/img
文件夹移至static/img
,并在模板中使用url_for
函数打印图像路径:
<img src="{{ url_for('static', filename=i.image_url) }}" alt="cable img">