Django 异常

Django 异常

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

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

Django 异常类

异常 描述
AppRegistryNotReady 尝试在应用程序加载过程之前使用模型时引发的异常。
ObjectDoesNotExist 不存在异常的基类。
EmptyResultSet 如果查询不返回任何结果,则引发此异常。
FieldDoesNotExist 请求的字段不存在时引发。
MultipleObjectsReturned 如果查询只期望返回一个对象,但返回了多个对象,则引发此异常。
SuspiciousOperation 当用户执行的操作应从安全性角度考虑为可疑操作时引发此异常。
PermissionDenied 当用户没有执行所请求操作的权限时引发此异常。
ViewDoesNotExist 当请求的视图不存在时由django.urls引发此异常。
MiddlewareNotUsed 当服务器配置中未使用中间件时引发此异常。
ImproperlyConfigured 当Django配置不正确时引发此异常。
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 异常

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程