多个项目的Python烧瓶网页单项页面

时间:2016-10-16 01:36:46

标签: python html sqlite flask

我正在做一个烧瓶网站项目,我试图为我的每个项目创建一个单独的项目页面。我使用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 %}

问题是我需要一个交互式产品信息页面,它只显示用户感兴趣并按下的产品信息。我怎么能这样做?

1 个答案:

答案 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)