V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kayseen
V2EX  ›  Flask

flask 在使用 redirect 对 url 重定向的时候,怎么传递请求体?

  •  
  •   kayseen · 2019-07-25 12:51:17 +08:00 · 3892 次点击
    这是一个创建于 1983 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教大家 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 中使用这个参数?

    10 条回复    2019-07-28 17:03:02 +08:00
    kayseen
        1
    kayseen  
    OP
       2019-07-25 12:52:42 +08:00
    请问应该怎么在视图函数 A 中定义重定向,才能使请求体参数也传递到 B?
    sunjiayao
        2
    sunjiayao  
       2019-07-25 12:57:52 +08:00
    把参数拼到 url 后面
    lc1450
        3
    lc1450  
       2019-07-25 13:09:32 +08:00
    听起来像请求转发,不过 flask 貌似没有此功能, 重定向后就是 get 请求了,要传参只能放 url 里或者放 session 里
    hzwjz
        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

    以上
    Abbeyok
        5
    Abbeyok  
       2019-07-25 13:36:08 +08:00
    redirect(url_for('.B',name='jay'))
    RicardoY
        6
    RicardoY  
       2019-07-25 13:41:21 +08:00
    这个听起来像是 forward...flask 似乎不直接支持..
    trys1
        7
    trys1  
       2019-07-25 13:43:52 +08:00 via Android
    这已经不是 flask 的范畴了,这是 HTTP 的事
    zhuweiyou
        8
    zhuweiyou  
       2019-07-25 15:25:58 +08:00
    带上 数据的 ID,?id=xxx 然后在 B 里查出来。
    带上 数据的所有内容,?json={...} 然后在 B 里直接用。
    存在 session 里
    Kylin30
        9
    Kylin30  
       2019-07-25 15:29:34 +08:00
    把共用部分抽出来?
    tomczhen
        10
    tomczhen  
       2019-07-28 17:03:02 +08:00
    307/308,但是需要 http client 有实现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.