我试图用烧瓶url_for。 问题是,当我尝试使用JavaScript变量的一切的价值推出的警报似乎确定,但是当我尝试与发动警报url_for变量的内容不被打印出来。 我做错了吗? 或缺少什么在我的代码?
我如何传递一个JavaScript变量到url_for功能?
HTML代码:
<a class="dissable_user_btn" data-user_id="{{user.id}}" href="#" title="Change Status"><i class="fa fa-plug"></i>
</a>
JS代码:
<script type="text/javascript">
$(document).ready(function(){
$('.dissable_user_btn').click(function( event ) {
var user_id = $(this).data("user_id")
alert(user_id) //everything ok
alert ('{{url_for('.dissable', _id=user_id)}}'); //dont print the valur of user_id
</script>
简短的回答:你不能。 瓶和Jinja2的渲染在服务器端模板(如瓶被翻译所有的{{ }}
的东西它发送HTML的Web浏览器之前)。
对于这样一个网址,你包括一个变量你需要在JavaScript手动建立这个路径的一部分。 如果这是一个XHR端点我推荐使用GET / POST的值比构造URL,这样更好的最佳实践传输到服务器。 这样,您就可以使用神社:
$(document).ready(function(){
var baseUrl = "{{ url_for('disable') }}";
$('.dissable_user_btn').click(function(event) {
var user_id = $(this).data("user_id");
// first part = url to send data
// second part = info to send as query string (url?user=user_id)
// third parameter = function to handle response from server
$.getJSON(baseUrl, {user: user_id}, function(response) {
console.log(response);
});
});
});
文章来源: Flaskr url_for with javascript variable as parameters is not working to python