flask url_for 在js 中 如果正确传多个参?

<input id="search_input" type="text" class="form-control" id="formGroupExampleInput"
                   placeholder="Search Input...">
    $(function () {
       ...
       content = $('#search_input').val();
       type = $('#search_select').val();
       url = "{{ url_for('search',type="+ type +" ,content="+ content +") }}
       ...
    })
@app.route('/search/type/<type>/content/<content>')
def search(type,content):
    return 'ok'

第二点js代码中, url的值并获取不到,请问如何正确传参数给url_for?

阅读 483
评论 2019-08-14 提问
    2 个回答

    举个例子

    @app.route('/')
    def index():
        return render_template('index.html')

    index.html 如下

    <a href="{{ url_for('index') }}">home</a>
    <script>
    $(function() {
        url = "{{ url_for('index') }}";
    })
    </script>

    当调用render_template 方法时,就已经是在渲染 html 模板了,这个过程是在服务端进行的,会把 url_for 的结果渲染成对应的路由,然后再返回给浏览器。

    针对你上述的操作

    $(function () {
       ...
       content = $('#search_input').val();  // 1
       type = $('#search_select').val();    // 2
       url = "{{ url_for('search',type="+ type +" ,content="+ content +") }}" // 3
       ...
    })

    这段 JS 是在浏览器执行的,1 和 2 都是动态获取的结果,3 的值已经是/search/type//content/, 所以无法获取你想要的结果。

    评论 赞赏 2019-08-14