【续】该博主《学习Dajngo》
只存session,但(登录状态保持)时间不可控。
先校验密码,再调用login(正常应该先判断用户是否存在,再调用login)
当进行 *** 作时,可能需要校验登录状态,在该方法前加@login_required
【一个例子】
#上下两个截图顺序有点乱,暂未核实(应该是 缺少部分)
#并没有看出是怎么跳转的欸,别的方法里还是views里
配置
查看,会自动跳转
一对一,后面更复杂;继承前面复杂后面简单
【必须在第一次python manage.py makemigration前创建】
【缺少18:10前的】
#需手动添加才能生效?
法一
法二(避免重名问题)
先创建一个模板(建表)用来存储数据存储路径的信息。
创建一个upload_app应用,在其models中创建字段,如下:
修改前面的test_upload
def test_upload(request):
if request.method == 'GET':
return render(request,'test_upload.html')
elif request.method == 'POST':
#和HTML里的input的name有关
#文本框直接用post方法
title = request.POST['title']
#file的type所以用这个方法?
myfile = request.FILES['myfile']
Content.objects.create(title=title,picture=myfile)
return HttpResponse('--上传文件成功--')
查看 http://127.0.0.1:8000/test_upload,上传文件(不能为空!!不然报错MultiValueDictKeyError),但由于没有csrf(具体还不是很理解)导致403
(1)在views中加装饰器?
(2)在HTML中加
{% crsf_token %}
查看图片
三个重要的协议
(1)发送邮件
(2)接收邮件,单向
(3)接收邮件,可实现仅获取摘要,双向 *** 作
一旦启动会down所有邮件,所以稍慢
按照要求完成后可获得授权码,复制后在django中找个地暂存一下。
粘到settings里
#邮件相关配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'#不同邮箱,更改qq应该就可 SMTP服务器地址
EMAIL_PORT = 25 #SMTP服务的端口号
EMAIL_HOST_USER = '3xxxxx9@qq.com' #发送邮件的邮箱
EMAIL_HOST_PASSWORD = '' #授权码
#EMAIL_USE_TLS = False #与SMTP服务器通信时,是否启动TLS连接(安全链接),默认False,不然慢
#QQ邮箱不能设置这个?
到shell里测试
1)在middleware应用的mymiddleware.py中创建类ExceptionMW
class ExceptionMW(MiddlewareMixin):
def process_exception(self,request,exception):
print(exception)
return HttpResponse('--对不起 当前网页有点忙')
2)在settings里注册
'middleware.mymiddleware.ExceptionMW',
3)创造一个错误来测试
但仅有一行简单的输出
在中间件中导入库,并打印追溯的错误
import traceback
print(traceback.format_exc())
刷新页面后将输出具体错误
在中间件类中添加以下内容,实现将报错内容发送给邮箱
from django.conf import settings
from django.core import mail
mail.send_mail(subject='djangoProject报错',message=traceback.format_exc(),
from_email='305650089@qq.com',recipient_list=settings.EX_EMAIL)
注意在settings里配置,便于重复利用?
##听不懂了orz,由于暂时不需要部署,故更新到此结束啦~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)