0
<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?

cn_ak 211
2019-08-14 提问

查看全部 2 个回答

0

举个例子

@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/, 所以无法获取你想要的结果。

推广链接