【发布时间】:2016-04-19 21:47:10
【问题描述】:
我正在使用 django + django-rest-framework
我正在从 ios 应用程序向本地 python 服务器发送 POST 请求并收到 400 错误代码。我知道问题出在我发送的 json 正文中,我想在某处输出完整的 POST 请求,但我没有运气。
[13/Jan/2016 22:48:45] "POST /url/ HTTP/1.1" 400 75
我不明白如何在运行服务器后打印任何内容(最简单的方法)。有没有可能?
我尝试在设置中启用logging,但也没有成功。
LOGGING = {
'version': 1,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.request': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
}
},
}
import logging.config
logging.config.dictConfig(LOGGING)
我还安装了django debug toolbar,但它也没有显示我发送的请求。 我也尝试返回 HttpResponse 但仍然没有得到 POST 请求数据。
在 django 或 django-rest-framework 中输出某处请求数据(控制台、文件或其他任何东西)的方式是什么?
已修复:
我在views.py 中添加了中间件,可以像这样扩展我的控制台输出:
class ExceptionLoggingMiddleware(object):
def process_request(self, request):
print request.body
print request.scheme
print request.method
print request.META
return None
不要忘记像这样将此中间件添加到您的设置文件中
MIDDLEWARE_CLASSES = [
'movie.views.ExceptionLoggingMiddleware']
据我了解,我通过设置文件创建的 LOGGING 有效,但输出的信息量不大,只是一些 sql 警告。
【问题讨论】:
-
错误日志记录,您应该详细说明如何设置日志记录以及“不走运”意味着什么
-
确保您在设置中设置了
ALLOWED_HOSTS。 -
@Sayse 我已经编辑了描述。运气不好,我的意思是控制台中没有调试信息,除了
[13/Jan/2016 22:48:45] "POST /url/ HTTP/1.1" 400 75
标签: python django django-rest-framework django-debug-toolbar