Flaskr url_for使用JavaScript变量作为参数不工作到Python(Flaskr

2019-09-30 14:21发布

我试图用烧瓶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>

Answer 1:

简短的回答:你不能。 瓶和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