我想使用下面提供的代码剪辑来更新我的数据库:
@app.route('/update')
def update():
os.system('python update.py')
return redirect(url_for('home'))
但是,当我使用gunicorn -w 4
运行应用并点击网址http://127.0.0.1:5000/update
一次时,它会运行python update.py
两次。相同的内容被插入到数据库中两次。我认为它可能是枪手的多重处理导致问题。
我也想让这个专栏独一无二,但它不符合我的需要。
我该如何解决这个问题? 你能告诉我一些好的解决方案,每天自动更新数据库。
答案 0 :(得分:0)
您只能在POST
个请求上更改系统状态,例如对数据库进行任何更改。所以:
@app.route('/update', methods=['POST'])
def update():
os.system('python update.py')
return redirect(url_for('home'))
否则,您可能会多次冒险,例如浏览器预加载,浏览器重启,取消浏览器选项卡以及许多其他选项。
我还会使用from . import update
代替os.system
。