32Django定义一个中间件将程序异常发送到指定邮箱
2021/12/9 14:16:41
本文主要是介绍32Django定义一个中间件将程序异常发送到指定邮箱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
用中间件实现抓取视图函数的异常,并以邮件的形式将异常信息发送给指定联系人
1在setting.py里配置qq邮箱:
#qq邮件相关配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #发送邮件引擎 EMAIL_HOST = 'smtp.qq.com' #腾旭qq有限smtp服务器地址 EMAIL_PORT = 25 #smtp服务端口号 EMAIL_HOST_USER = '66907360@qq.com' #发邮件的qq邮箱 EMAIL_HOST_PASSWORD = 'abzhdj1234567890' #qq设置-账户-授权码 #EMAIL_USE_TLS = False #与smtp服务器通信时,是否启动TLS链接(安全链接),默认False EX_MAIL = ['zhangsan@qq.com'] #接收邮件的邮箱
2创建中间件
在项目目录下创建一个python包:middleware,并在python包middleware中创建一个python文件mymiddleware.py(右键djangoProject2 -- New -- python Package):
djangoProject2 middleware __init__.py mymiddleware.py djangoProject2 __init__.py asgi.py settings.py urls.py views.py wsgi.py manage.py
3在mymiddleware.py内编写中间件:
from django.utils.deprecation import MiddlewareMixin class ExceptionMW(MiddlewareMixin): pass
4注册中间件
MIDDLEWARE = [ 'middleware.mymiddleware.ExceptionMW', ]
5完善中间件视图逻辑:
from django.http import HttpResponse from django.utils.deprecation import MiddlewareMixin import traceback from django.conf import settings from django.core import mail class ExceptionMW(MiddlewareMixin): def process_exception(self,request,exception): print(exception) print(traceback.format_exc()) #此方法异常信息更详细 mail.send_mail( subject='djangoProjecrs2报错啦', message=traceback.format_exc(), from_email='66907360@qq.com', recipient_list=settings.EX_MAIL ) return HttpResponse('--当前页面存在异常--')
这篇关于32Django定义一个中间件将程序异常发送到指定邮箱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享