python - 在页面刷新时停止表单提交
问题描述
我有一个带有 Flask/Python/Html 的表格
提交表单后,它会被路由到另一个页面,在该页面上会给出确认,例如“表单提交成功!”
但是,如果我刷新页面,它将再次提交内容,因此我可能最终会得到重复的数据。
有没有办法防止这种情况?
HTML
<form action="{{ url_for('submitForm') }}" method="post">
<input name='user_input'>
<button type='submit'>Submit</button>
</form>
蟒蛇/烧瓶
app.route('/submitForm', methods=['POST'])
def submitForm():
data = request.form['user_input']
some_list.append(data)
return 'Form submitted'
解决方案
问题是浏览器存储了最后一个请求的状态,因此如果此时刷新页面,浏览器将重新提交表单。
处理成功的表单请求后,重定向到页面以获取新状态。
类似于下面的代码
return redirect(url_for('submitForm'))
因此
app.route('/submitForm', methods=['POST'])
def submitForm():
data = request.form['user_input']
some_list.append(data)
print('data submitted successfuly')
return redirect(url_for('submitForm'))
return 'Form submitted'
推荐阅读
- vba - 使用 VBA 在 Access 中捕获表单时出错
- python - 从 Pandas MultiIndex 系列创建热图
- java - 将文件中的文本读入变量
- pickle - 如何解开 inferSent 和加载模型?
- jekyll - Jekyll 自定义主题在 Github 页面上不起作用
- javascript - React Native - 分析来自 Firebase 的数据并在应用内显示
- java - 我在 AsyncTask 的 doInBackground () 中收到错误
- node.js - npm 错误!enoent ENOENT:没有这样的文件或目录,打开'/app/package.json'
- javascript - TypeError:无法读取 React 和 Redux 中未定义的属性“代码”
- c# - WordprocessingDocument:如何替换包含在一组特殊字符中的特定文本?