为了账号安全,请及时绑定邮箱和手机立即绑定

新手上路,flask url_for 在js 中 如果正确传多个参?

新手上路,flask url_for 在js 中 如果正确传多个参?

阿晨1998 2019-08-24 22:38:52
$(function(){...content=$('#search_input').val();type=$('#search_select').val();url="{{url_for('search',type="+type+",content="+content+")}}...})@app.route('/search/type//content/')defsearch(type,content):return'ok'第二点js代码中,url的值并获取不到,请问如何正确传参数给url_for?
查看完整描述

3 回答

?
元文

TA贡献3条经验 获得超1个赞

  1. 将url渲染在html中

  2. <input type="hidden" name="search_url" id="search_url" value="{{ url_for(XXXX) }} >

3.通过js获取这个url,然后再传值

查看完整回答
反对 回复 2021-06-18
?
HUX布斯

TA贡献1876条经验 获得超6个赞

暂时换了个方法用动态的url
@app.route('/search/')
defsearch(type,content):
//request.args.get接受参数
return'ok'
//js代码
my_url="{{url_for('search')}}";
console.log(my_url)
my_url_full=my_url+"?type="+type+"&content="+content
console.log(my_url_full)
                            
查看完整回答
反对 回复 2019-08-24
?
撒科打诨

TA贡献1934条经验 获得超2个赞

举个例子
@app.route('/')
defindex():
returnrender_template('index.html')
index.html如下
home
当调用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-24
  • 3 回答
  • 0 关注
  • 1237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号