python - Flask - POST请求后重定向到新页面
问题描述
我的站点上有一个编辑按钮,它将执行一个 POST-Request,然后我想被重定向到new.html
,其中包含一个包含我的 POST 数据的表单。
我的 js 文件中的 POST 请求:
async function onEditBtn() {
// find correct entry in schedule
const data = schedule.find(meeting => meeting.id == rowIdOfContextMenu);
rowIdOfContextMenu = -1;
const response = await fetch("editmeeting", {
method: 'POST',
body: data});
}
接收 Flask 路由:
@app.route('/editmeeting', methods=['POST'])
def edit():
data = request.get_json()
print(data)
return render_template('new.html', data)
POST 请求成功,但我没有被重定向到new.html
.
如果我使用window.location.href = "<route to my edit page>";
或window.location.replace();
在 js 端使用从 POST 请求获得的响应,我的编辑页面将不会获得 POST 数据。
编辑:我正在寻找的是window.location.href
POST 而不是 GET。
我最终使用了 Flask 的会话对象。发出 POST 请求/editmeeting
,将 POST 数据保存在会话对象中,然后new.html
使用window.location.href
我的 js 代码手动将我的页面重定向到另一个路由渲染,并使用存储在会话中的数据。
谢谢你的回答!
解决方案
您可以将 GET 方法添加到此函数
@app.route('/editmeeting', methods=['GET', 'POST']
或将此添加到您的导入中
from flask import Flask, redirect, url_for
并将函数的返回更改为类似的内容(仅当“新”确实是您的应用程序中的一个函数时才有效。
return redirect(url_for('new'))
推荐阅读
- python - 使用 Numba 使四个嵌套的 for 循环更快
- r - ggplot图例可以自由移动到情节之外吗?
- python - 在我的项目`venv`中,`python3 manage.py runserver`会出错,但是如果我使用python3的绝对路径来执行就可以了
- http - SuperAgent -- 仅获取标题
- javascript - Javascript - forEach 变量未定义且 setAttribute 不起作用
- sql - 使用表列表创建循环并一一调用所有表
- javascript - 按下按钮时如何调用 click JavaScript 事件?
- html - 什么是“不可替换的内联块”?
- php - Laravel 尾部斜杠重定向到带有公共的 url
- javascript - 使用事件克隆 Eonasdan DateTimePicker