python - 通过使用 Flask 触发表单操作来抑制重定向
问题描述
我想使用烧瓶来定义按钮的操作。但是,触发动作后,我会自动被重定向。例如,使用以下 html 定义按钮:
<html>
<body>
<form action="/do_something" method="post">
<button>Do something!</button>
</form>
</body>
</html>
以及给定 python 脚本的动作处理:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def root():
return render_template("test_3.html")
@app.route("/do_something", methods=["POST"])
def something():
return 'Something'
app.run()
在这种情况下,我从 url “/”开始。通过单击“做某事”按钮,我将自动被重定向到 URL“/do_something”。我真正想要的是:
- 执行动作
- 刷新原页面
有人可以帮忙吗?
解决方案
如果 POST 请求/do_something
可以发生在任何页面上,我建议重定向回请求的引荐来源网址,这将“刷新”页面。
例如
from flask import Flask, render_template, request, redirect
app = Flask(__name__)
@app.route("/")
def root():
return render_template("test_3.html")
@app.route("/do_something", methods=["POST"])
def something():
# Do things
return redirect(request.referrer or request.host_url)
app.run()
否则,您可以指定要访问的页面redirect()
和url_for()
例子:
from flask import Flask, redirect, render_template, url_for
app = Flask(__name__)
@app.route("/")
def root():
return render_template("test_3.html")
@app.route("/do_something", methods=["POST"])
def something():
# Do things
return redirect(url_for("app.root"))
app.run()
推荐阅读
- javascript - 当我更改旋转 CSS 属性时,我的图像消失了
- c++ - 为什么“***堆栈粉碎检测到***:
终止中止(核心转储)”错误显示在此代码中? - python - 使用 pdfplumber 难以解析 PDF 文件
- c++ - 如何解决 Visual Studio C++ 'xmemory' 文件中的错误?
- python - 有没有办法强制熊猫`to_numeric`总是返回float64?
- javascript - 带有过滤器数组的 Rxjs 过滤器可观察
- pandas - 合并熊猫中的两个数据框,多个相同的列名。无法弄清楚语法
- typescript - 使用 Jest 和 Typescript 对 VueJ 进行单元测试 - 未安装组件
- javascript - 将自定义按钮添加到 Quill 的工具栏(并将其也集成到 PrimeFaces 文本编辑器中)?
- c# - ServiceBase - 没有创建后台线程?