V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

Ajax 发送 get 请求给 flask 获得了一个 id,如何用这个 id 作为 url_for 的参数生成 url_for 的链接呢?

  •  
  •   coolair · 2016-05-03 17:59:01 +08:00 · 1772 次点击
    这是一个创建于 2936 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2016-05-03 20:13:16 +08:00
    Syc
        1
    Syc  
       2016-05-03 18:20:57 +08:00 via Android
    沙发学习,等待楼下专业人士解答
    loading
        2
    loading  
       2016-05-03 18:35:17 +08:00 via Android
    请看文档和附带的代码


    @app.route('/getunfo/<int:id>')
    def user(id):
    print id
    return 'hello '+str(id)
    loading
        3
    loading  
       2016-05-03 18:38:15 +08:00 via Android
    你的问题我看不太懂,因为你前面说 ajax 获得 id 后,那应该是个前端问题……

    如果你问的是 flask 的 url hash 参数,看我上一个回复。


    麻烦你讲详细一点!
    coolair
        4
    coolair  
    OP
       2016-05-03 18:44:27 +08:00
    @loading 非常感谢您的回答。其实是这个意思:我在前端页面用 ajax 发送了一个 get 请求给后台,后台返回给前台 data 里面有一个 id ,想利用这个 id 的值在前台生成一段带链接的 HTML 插到页面里。这个 id 想用作 url_for 的参数{{ url_for('xxx'), param=id }}。
    我查了下资料,发现 Jinja 好像不能这样用,不能利用 JS 的参数。最后还是改成 form 用 onsubmit 来实现了。
    只是觉得如果能那样用的话会更方便。
    loading
        5
    loading  
       2016-05-03 18:50:18 +08:00 via Android
    你这个是浏览器完成的工作吧?你认真想一下!

    你这个需求,用 jquery 写在 ajax success 里面,解析 data 数据,然后再拼接出你要的 html ,用 jquery 的 append 插入到你要的地方就可以了。


    你要分清是哪里处理的!
    coolair
        6
    coolair  
    OP
       2016-05-03 18:51:06 +08:00
    @loading 最后用这个方法来发送 json 跳转到新页面,只能这样了:
    http://stackoverflow.com/questions/24891614/how-to-use-flasks-render-template-from-an-ajax-post-form-submit
    coolair
        7
    coolair  
    OP
       2016-05-03 18:52:41 +08:00
    @loading 是的,我也是那样想的,但是那样拼的链接写法不易于维护,想借助 url_for 。
    loading
        8
    loading  
       2016-05-03 18:56:27 +08:00 via Android
    前端也有模板库的,你这个是 js 应该完成的工作。

    当然,你目前应该还只是学 flask 吧。


    btw:恭喜开始挖全端这个天坑
    Syc
        9
    Syc  
       2016-05-03 19:44:22 +08:00 via Android
    @loading !!!原来前后端一起开发的人叫全端! 那 前后+运维叫什么😨
    loading
        10
    loading  
       2016-05-03 19:55:16 +08:00 via Android
    @Syc cto
    cloverstd
        11
    cloverstd  
       2016-05-03 20:02:02 +08:00
    http://stewartjpark.com/Flask-JSGlue/

    这个可以满足你在 js 里用 url_for
    coolair
        12
    coolair  
    OP
       2016-05-03 20:07:39 +08:00 via Android
    @cloverstd 404 了?我看了国人写的一个插件,不是很理想。
    cloverstd
        13
    cloverstd  
       2016-05-03 20:13:16 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3720 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:29 · PVG 18:29 · LAX 03:29 · JFK 06:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.