Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
如何阻止django将html页面作为错误提供_Django - Fatal编程技术网

如何阻止django将html页面作为错误提供

如何阻止django将html页面作为错误提供,django,Django,我正在和一些朋友一起开发一个应用程序,后端RESTAPI是django的。当我从我的前端调用API时,我有时会在控制台上打印出大块html来代替任何有意义的东西。我做了一些谷歌搜索,我似乎找不到一个答案,如何关闭它,让django只返回错误字符串或json或其他东西。有人能帮我摆脱这个html吗?试试使用: 这将允许您在django项目中配置日志记录。您的django应用程序正在调试模式下工作。请试试这个。 转到../yourdjangoproject/yourdjangoproject/set

我正在和一些朋友一起开发一个应用程序,后端RESTAPI是django的。当我从我的前端调用API时,我有时会在控制台上打印出大块html来代替任何有意义的东西。我做了一些谷歌搜索,我似乎找不到一个答案,如何关闭它,让django只返回错误字符串或json或其他东西。有人能帮我摆脱这个html吗?

试试使用:


这将允许您在django项目中配置日志记录。

您的django应用程序正在调试模式下工作。请试试这个。 转到../yourdjangoproject/yourdjangoproject/settings.py 并找到行Debug=True。使其Debug=False将阻止它在出现错误时吐出大量html

您可以做的另一件事是仅将错误视为漂亮的api响应字符串:

查找给出错误的视图函数,可以通过相同的巨大html错误消息或在url.py中检查视图中的url来找到该错误

然后围绕整个视图尝试,除了这样

定义您的api视图bla: 尝试: 所有的视图代码都在这里 例外情况除外,如e: 返回响应{错误:e}


这样,错误消息将像普通api响应字符串一样显示给您。

我自己不使用django,所以我不熟悉它。我只是觉得django中应该有一个选项,让它不提供错误页面,而是提供没有html的错误字符串。我说的是,当django本身出现一些错误时,为什么它甚至不能执行API,它会抛出一个巨大的html块。我们很好地处理了API中的错误,明白了。在这种情况下,检查这个:这使它不会吐出任何东西,不是吗?它说,将debug设置为false只会使它产生一般500个错误,而不是使它不会以html格式产生错误。每当django web应用出错时,它将不会运行,并根据调试设置显示短500页或完整的调试页。因此,当您将api请求发送到某个api视图时,该视图出错,如果您是从其他类似浏览器的请求库发送web请求,则网站将提供原始html。如果你只想看到错误的回溯,你应该设置日志记录到一个文件。这会让你开始。为了避免django吐出html,请确保视图不会出错。我正在用另一个选项编辑我的答案。请尝试一下。我们只使用django作为RESTAPI。我只是想让它意识到它不应该处理html,并且永远不要向我显示任何html。我不想为每种情况都配置它。有没有办法让整个django都这么做?