发布JSON和python Flask - 使用Werkzeug调试器的任何技术?

joh*_*son 9 python debugging werkzeug flask

好吧,我正在使用我的项目的RESTful后端,并通过jquery提交数据.

我必须说werkzeug调试器非常适合调试,特别是当你是一个像我这样可怕的python程序员时.您出于意图调查异常,并使用调试器呈现的html检查代码和变量.

但是,当您发送post请求而不是get时,如果在后端代码上抛出异常,当然浏览器将不会呈现响应文本.

有什么技术可以用来呈现响应文本,考虑到它有javascript和一切吗?

我正在尝试不同的事情,例如尝试将响应文本注入弹出窗口,例如:

           $.postJSON = function(url, data, callback, error_callback) {
                return jQuery.ajax({
                    'type': 'POST',
                    'url': url,
                    'contentType': 'application/json',
                    'data': JSON.stringify(data),
                    'dataType': 'json',
                    'success': callback,
                    'error': error_callback
                });
            };

            $.postJSON('/the_uri', {'foo': 'bar'}, 
            function(response) {
                var a = 0;
            }, 
            function(response) {
                var html = response.responseText;
                var my_window = window.open('', 'mywindow1', 'width=350,height=150');
                $(my_window.document).find('html').html(html);
            });
        });
Run Code Online (Sandbox Code Playgroud)

但这不会很好地处理JavaScript.

有没有人有任何建议?

Mar*_*zer 5

你的方法几乎是正确的。我使用以下代码在新窗口中打开响应文本(根本不特定于 Werkzeug 或 Flask):

var w = window.open('', 'debug_stuff', 'width=540,height=150');
w.document.open();
w.document.write(response.responseText);
w.document.close();
Run Code Online (Sandbox Code Playgroud)

最后一行是最重要的。如果没有它,代码的行为将与您的代码一样——它不会执行任何 JavaScript,因为浏览器不知道 DOM 已完全加载。