我正在做一个烧瓶网站项目,我试图为我的每个项目创建一个单独的项目页面。我使用sqlite作为数据库。
以下是我主页的html代码:
{% extends "base-template.html" %}
{% block content %}
<h1>Valves</h1>
<form action="/product-info" methods=["link", "post"] class="valve-box">
{% for valve in valve_list %}
<li>
<b>Name/Model:</b> {{ valve['item_name'] }}<br> <b>Price:</b> {{ valve['item_price'] }}$
<input type="submit" value="Go to info page"/>
</li>
{% endfor %}
</form>
{% endblock %}
这在html上基本上是一个项目的Verticle列表。当我对某个项目感兴趣时,我按下项目旁边的按钮,我文件夹中的路径文件将把我带到产品信息页面。
以下是我的产品信息页面的HTML代码:
{% extends "base-template.html" %}
{% block content %}
<h1>Information</h1>
<form class="valve-box">
{% for valve in valve_list %}
<li>
<b>Item ID:</b> {{ valve['item_id'] }}<br> <b>Name/Model:</b> {{ valve['item_name'] }}<br> <b>Description:</b> {{ valve['description'] }}<br> <b>Price:</b> {{ valve['item_price'] }}$
</li>
{% endfor %}
</form>
{% endblock %}
问题是我需要一个交互式产品信息页面,它只显示用户感兴趣并按下的产品信息。我怎么能这样做?
答案 0 :(得分:1)
在Python文件中创建一个新的@app.route
以显示单个产品的信息,然后为每个阀门添加一个链接。它看起来像这样:
<!-- other HTML up here -->
{% for valve in valve_list %}
<li>
<b>Item ID:</b> {{ valve['item_id'] }}<br>
<b>Name/Model:</b> {{ valve['item_name'] }}<br>
<b>Description:</b> {{ valve['description'] }}<br>
<b>Price:</b> {{ valve['item_price'] }}$
<a href='{{ url_for("show_valve", valve_id=valve["item_id"]) }}'>Show detail</a>
</li>
{% endfor %}
<!-- the rest of your HTML -->
您在Python文件中的新功能将接受模板发送的ID,然后您可以为该项目构建一个页面。这是我在Python代码中为新函数思考的一个例子:
@app.route('whatever/address/you/want')
def show_valve(valve_id):
# get your list of valves from wherever it comes from
for valve in valves:
if valve["item_id"] == valve_id:
target_valve = valve
break
return render_template('showValveDetail.html', valve=target_valve)