Python 在控制台而不是Web浏览器上显示Django错误
我正在使用ExtJS4开发一个REST应用程序,并使用Django 1.6.5为此应用程序创建一个简单的模拟API,目前我只想在SQLite db中保存一些数据,并将其他一些数据输出到控制台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,
虽然测试
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响应。因此,在控制台中显示这些错误将节省我大量的时间和工作。这是一个很好的答案,布鲁诺。它没有回答问题,就像你说的,但它回答了问题。