我有一个页面,其中包含项目列表,其中包括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,等等。
有关如何阻止这种情况发生的任何想法?
感谢。
答案 0 :(得分:0)
我使用return template('worker', items=store.printItems(2))
而不是workerPage2()
中的return redirect('worker')
。像我想的那样工作。