如何在运行Python脚本时在Django中引发错误?

时间:2013-12-29 20:54:08

标签: python django

现在我正在编写一个Python脚本,它将在表单完成后执行。然后我运行我的脚本,我想在网页运行时显示任何错误。要完成的方法是什么,特定于Django还是Python特定的?

r = requests.post("http://1.1.1.1:8080/unsecured/cloud/api/auth", data={}, auth=('user', 'password'))
if r.status_code == 200:
    data = r.json()
    if 'access' in data:
        cookie = {'simpletoken': data['access'].get('id')}
else:
    # raise some kind of error that will be displayed on the webpage

我认为提高Django ValidationError异常是合适的。但我不确定。任何帮助都会很棒!感谢。

1 个答案:

答案 0 :(得分:1)

您可以引发任何您喜欢的异常,但所有这些异常都会导致向用户显示通用500错误(真正的异常将显示在您的日志中)。如果将DEBUG设置为True,那么您将看到完整的回溯,但这不是您在生产中应该期望的。

如果这不是您想要的,那么您需要在try / except块中从视图中包含对异常生成代码的调用。然后在“除外”中,让代码显示一个页面,其中包含有关所需错误的所有信息。只要注意安全问题,您的异常会显示有关基础架构的敏感信息。

至于准确提出哪个错误,我不确定ValidationError是否是您需要的确切错误,但是@ dm03514建议您可以创建自己的错误,或者您可以查看已经存在的其他异常子类。最终,只要不存在将其与其他东西混淆的风险,那么使用哪种异常并不重要。