在 Django 中,你可以通过自定义错误视图来处理不同类型的错误。这包括在发生 HTTP 404 错误时显示自定义的页面,或者在发生其他类型错误时显示相应的错误信息。以下是一个简单的例子,演示如何在 Django 4.0 中自定义错误视图:
# views.py
from django.shortcuts import render
from django.http import HttpResponse

def custom_404_view(request, exception):
    return render(request, '404.html', status=404)

def custom_500_view(request):
    return render(request, '500.html', status=500)

在上述代码中,custom_404_view 函数处理 HTTP 404 错误,它接受一个 exception 参数,该参数用于接收有关异常的详细信息。custom_500_view 函数处理服务器内部错误(HTTP 500),不接受异常参数。

接下来,在你的应用的 urls.py 文件中,你可以配置 Django 使用这些自定义错误视图:
# urls.py
from django.urls import path
from .views import custom_404_view, custom_500_view

handler404 = 'myapp.views.custom_404_view'
handler500 = 'myapp.views.custom_500_view'

urlpatterns = [
    # 此处添加你的其他 URL 模式
]

在上述代码中,handler404 和 handler500 分别设置了处理 HTTP 404 错误和服务器内部错误的视图函数。

最后,确保你的项目的主 urls.py 文件包含了你的应用的 URL 配置:
# project/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls')),  # 假设你的应用名为 'myapp'
]

现在,当你的应用中发生 HTTP 404 错误时,Django 将使用 custom_404_view 函数来处理,显示你在 404.html 模板中定义的内容。当发生服务器内部错误时,将使用 custom_500_view 函数来处理,显示你在 500.html 模板中定义的内容。

确保在模板目录中创建相应的 HTML 模板文件,并根据需要自定义它们的内容。这只是一个简单的例子,你可以根据实际需求进一步扩展和自定义。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7213/Django