中间键(课件第26张)
中间键的执行流程
process_request(self,request) 在request之后,url匹配之前
process_view 在url(self, request, view_func, *view_args, **view_kwargs)匹配之后,调用视图函数之前
process_response(self, request, response) 在view调用之后,response返回用户之前
__init__(self) 初始化 无需任何参数
process_exception(self,request,exception)异常处理,当属兔抛出异常时调用,返回一个HttpResponse对象
Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,(Django框架给我们预留的函数接口,让我们可以干预请求和响应的过程),无侵入式的开发方式(类似装饰器的开放封闭)
Django在中间件中预置了五个方法,这五个方法的区别在于不同的阶段执行,对输入或输出进行干预
创建好的中间键需要在settins中的MIDDLEWARE进行注册
获取浏览器的访问ip request.META['REMOTE_ADDR']
好处是
admin配置 课件第27张
分页
Django提供了数据分页的类,这些类被定义在django/core/paginator.py中。 类Paginator用于对列进行一页n条数据的分页运算。类Page用于表示第m页的数据。
发邮件
django本省不能发邮件,它的发邮件功能是指定某一邮件服务器给指定用户发送邮件如163邮箱在发送邮件之前需要获取客户端授权密码
之后需要在settings中配置
EMAIL_BACKEND ='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST ='smtp.163.com'
EMAIL_PORT =25
#发送邮件的邮箱
EMAIL_HOST_USER ='django_eamil_test@163.com'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD ='wwy123456789'
#收件人看到的发件人
EMAIL_FROM ='python<django_eamil_test@163.com>'
创建视图
fromdjango.confimportsettings
fromdjango.core.mailimportsend_mail
fromdjango.httpimportHttpResponse
...
defsend(request):
msg='<a href="#" target="_blank">点击激活</a>'
send_mail('注册激活','',settings.EMAIL_FROM,
['django_eamil_test@163.com'],
html_message=msg)
returnHttpResponse('ok')
设置url