Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在控制台而不是Web浏览器上显示Django错误_Python_Django_Rest_Extjs - Fatal编程技术网

Python 在控制台而不是Web浏览器上显示Django错误

Python 在控制台而不是Web浏览器上显示Django错误,python,django,rest,extjs,Python,Django,Rest,Extjs,我正在使用ExtJS4开发一个REST应用程序,并使用Django 1.6.5为此应用程序创建一个简单的模拟API,目前我只想在SQLite db中保存一些数据,并将其他一些数据输出到控制台 虽然测试GET方法相当简单,但当我遇到POST、PUT和DELETE问题时,我在浏览器中看不到Django返回的错误。有没有办法让这些错误显示在Django的开发者服务器控制台中?在settings.py中,设置DEBUG=True,使Django在web响应中显示整个错误信息 如果DEBUG=False,

我正在使用ExtJS4开发一个REST应用程序,并使用Django 1.6.5为此应用程序创建一个简单的模拟API,目前我只想在SQLite db中保存一些数据,并将其他一些数据输出到控制台


虽然测试
GET
方法相当简单,但当我遇到
POST
PUT
DELETE
问题时,我在浏览器中看不到Django返回的错误。有没有办法让这些错误显示在Django的开发者服务器控制台中?

在settings.py中,设置DEBUG=True,使Django在web响应中显示整个错误信息


如果DEBUG=False,您必须使用print手动将错误打印到控制台,或使用一些日志工具将其导出到日志。

我知道这不是问题的答案,但它是建议问题的解决方案。在Google Chrome中,如果你打开开发者工具(Ctrl+Shift+J),你可以进入
网络
选项卡,点击有错误的请求(红色),然后点击右侧打开的面板中的
响应
选项卡。在那里,您将能够看到
POST
PUT
DELETE
的错误


在您的视图.py中,您只需打印带有序列化程序错误的Response.data,Python web服务器将显示失败的详细信息。如本例所示:

def post(self, request, format=None):
    serializer = DataSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    else:
        error = Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
        print(error.data)
    return error

如果您使用的是Django runserver命令,那么您应该在同一控制台中看到错误,而不是完整的错误日志,如浏览器中的Django所示。在控制台中,Django只显示了500个错误,如“POST/servers/HTTP/1.1”500 11394我认为您必须使用
print
。虽然您的想法不是问题的真正答案,但这是一个好的方向,我用
try/except
来包围整个方法,试图找到错误。这里的答案可能会有所帮助:
DEBUG
设置为
True
。问题不在于我不能看到web响应中的错误,我是,如果我使用像这样的工具。但正如我所说的,我正在尝试测试REST应用程序中的
HTTP
POST
PUT
DELETE
方法,该应用程序在向Django应用程序发出请求后不显示web响应。因此,在控制台中显示这些错误将节省我大量的时间和工作。这是一个很好的答案,布鲁诺。它没有回答问题,就像你说的,但它回答了问题。