Python Bottle - 每次刷新

时间:2016-12-18 23:15:29

标签: python bottle

我有一个页面,其中包含项目列表,其中包括ID,名称,价格和库存水平。此信息从SQLite3数据库获取并输入到表中的页面上。该表还有一列,用户可以在其中添加或删除项目的库存。

此代码显示表格的一部分:

% for i in items:
<tr>
    <th scope="row">{{i[0]}}</th>
    <td>{{i[1]}}</td>
    <td>{{i[2]}}</td>
    <td>{{i[3]}}</td>
    <td><form method="post" action="/worker"><input type="number" name="newStock.{{i[0]}}"><input style="margin-left: 5px" type="submit" Value="Submit"></form></td>
</tr>
% end

这是此页面的Python瓶代码

@route('/worker', method='GET')
def workerPage1():
    return template('worker', items=store.printItems(2)) # 1 prints out for shoppers, 2 prints out for workers.

@route('/worker', method='POST')
def workerPage2():
    # allows to receive ItemId
    for k in request.forms:
        if k.startswith('newStock.'):
            itemId = k.partition('.')[-1]
            numStock = request.forms.get(k)
            store.updateStock(itemId,numStock) # this accesses the database, updating the stock level

    return template('worker', items=store.printItems(2)) 

我遇到的问题是,当我输入要添加的库存时,例如&#39; 8&#39;它做得很好。但是当我刷新页面时,它又添加了8个页面。因此,如果它是在22,然后我点击提交添加股票,它将会到30,然后当我刷新页面时,它将转到38,等等。

有关如何阻止这种情况发生的任何想法?

感谢。

1 个答案:

答案 0 :(得分:0)

我使用return template('worker', items=store.printItems(2))而不是workerPage2()中的return redirect('worker')。像我想的那样工作。