请教大家 flask 的重定向(不使用 url_for 重定向): 如下: 视图函数 A 的 url 为"127.0.0.1:8000/A",它接受通过 post 传递过来的参数为{"name":"jay"}; 视图函数 B 的 url 为"127.0.0.1:8000/B"; 请问怎么在视图函数 A 中使用 redirect 重定向到 B 的 url,同时将 A 通过请求体接受的参数也传递给 B,在视图函数 B 中使用这个参数?
![]() | 1 kayseen OP 请问应该怎么在视图函数 A 中定义重定向,才能使请求体参数也传递到 B? |
2 luman 2019-07-25 12:57:52 +08:00 把参数拼到 url 后面 |
![]() | 3 atx 2019-07-25 13:09:32 +08:00 听起来像请求转发,不过 flask 貌似没有此功能, 重定向后就是 get 请求了,要传参只能放 url 里或者放 session 里 |
![]() | 4 hzwjz 2019-07-25 13:18:10 +08:00 你的最终目的是什么?是想在视图 B 响应的时候渲染视图 A 接收 post 过来的参数?如果是这样子,你何不如将数据 post 给视图 B ? 再不济,也可以这样子吧 ```Python @app.route('/A') def view_a(): if request.method.lower() == "post": redirect(location='/B', code=302, respOnse=make_response(render_template('template_fie.html')))) ``` 参考 https://flask.palletsprojects.com/en/1.0.x/api/#flask.redirect https://flask.palletsprojects.com/en/1.0.x/api/#flask.make_response 以上 |
![]() | 5 Ct5T66PVR1bW7b2z 2019-07-25 13:36:08 +08:00 redirect(url_for('.B',name='jay')) |
6 RicardoY 2019-07-25 13:41:21 +08:00 这个听起来像是 forward...flask 似乎不直接支持.. |
7 trys1 2019-07-25 13:43:52 +08:00 via Android 这已经不是 flask 的范畴了,这是 HTTP 的事 |
8 zhuweiyou 2019-07-25 15:25:58 +08:00 带上 数据的 ID,?id=xxx 然后在 B 里查出来。 带上 数据的所有内容,?json={...} 然后在 B 里直接用。 存在 session 里 |
![]() | 9 Kylin30 2019-07-25 15:29:34 +08:00 把共用部分抽出来? |
![]() | 10 tomczhen 2019-07-28 17:03:02 +08:00 307/308,但是需要 http client 有实现。 |