个性化阅读
专注于IT技术分析

Django异常示例

点击下载

本文概述

异常是导致程序失败的异常事件。为了应对这种情况, Django使用了自己的异常类, 并且还支持所有核心Python异常。

Django核心异常类在django.core.exceptions模块中定义。此模块包含以下类。

Django异常类

例外 描述
AppRegistryNotReady 在应用加载过程之前尝试使用模型时, 会引发该错误。
ObjectDoesNotExist DidNotExist异常的基类。
EmptyResultSet 如果查询不返回任何结果, 则会引发此异常。
FieldDoesNotExist 当请求的字段不存在时, 它将引发。
MultipleObjectsReturned 如果只需要一个对象, 但返回多个对象, 则查询会引发此异常。
SuspiciousOperation 当用户执行了从安全角度来看应视为可疑的操作时, 会引发此异常。
PermissionDenied 当用户无权执行所请求的操作时, 将引发此错误。
ViewDoesNotExist 当请求的视图不存在时, 它由django.urls引发。
MiddlewareNotUsed 如果在服务器配置中未使用中间件, 则会引发此错误。
ImproperlyConfigured Django配置不当会引发ImproperlyConfigured异常。
FieldError 当模型字段存在问题时, 将引发此问题。
ValidationError 当数据验证无法通过表单或模型字段验证时引发。

Django URL解析器异常

这些异常在django.urls模块中定义。

例外 描述
Resolver404 当传递给resolve()函数的路径未映射到视图时引发此异常。
NoReverseMatch 当无法根据提供的参数识别URLconf中的匹配URL时引发。

Django数据库异常

django.db模块中定义了以下例外。

例外 描述
DatabaseError 当数据库不可用时发生。
IntegrityError 它在执行插入查询时发生。
DataError 当与数据相关的问题进入数据库时​​, 它会增加。

Django Http异常

django.http模块中定义了以下异常。

例外 描述
UnreadablePostError 用户取消上载时引发。

Django交易例外

事务异常在django.db.transaction中定义。

例外 描述
TransactionManagementError 对于与数据库事务有关的所有问题, 都会提出该问题。

Django例外范例

假设我们要获取id = 12的员工记录, 我们的视图函数将在下面显示。如果找不到数据, 则引发DoesNotExist异常。这是Django的内置异常。

// views.py

def getdata(request):
    data = Employee.objects.get(id=12)
    return HttpResponse(data)

// urls.py

path('get', views.getdata)

它显示以下异常, 因为在ID 12处没有可用的记录。

输出:

Django异常示例

我们可以使用try和except来处理它, 现在让我们处理这个异常。

// Views.py

def getdata(request):
    try:
        data = Employee.objects.get(id=12)
    except ObjectDoesNotExist:
        return HttpResponse("Exception: Data not found")
    return HttpResponse(data);

输出:

Django异常输出
赞(0)
未经允许不得转载:srcmini » Django异常示例

评论 抢沙发

评论前必须登录!