Django天天生鲜项目-用户注册

用户注册

  • 注册基本逻辑
    • 显示注册页面
    • 进行注册处理
    • 显示注册页面和页面处理使用同意个url地址
    • 类视图(建议用这个)
  • 生成激活用户的tokon
  • 注册用户激活流程
  • django内置函数发送激活邮件
  • celery异步发送邮件

注册基本逻辑

显示注册页面

1,放入templates模板文件中,
2,修改user,vews.py,
3,修改项目应用user的urls.py
4,在html导入静态资源,

进行注册处理

1,修改提交地址,定义register_handle函数,添加url到user的urls.py中
2,接收数据

#接收数据
	username = request.POST.get(’user_name‘)
	password = request.POST.get('pwd)
	email = request.POST.get('email')
	allow = request.POST.get('allow')
#进行数据校验
if not all([username,password,email]):
	#数据不完整
	retuen render(request, 'register.html',{'errmsg':'数据不完整'})
#校验邮箱
if not re.match(r'^[]0-------正则' , emali)
	return render (request,'register.html',{errmsg:'邮箱格式不正确'})
if allow!='on':
	return render(request,'register.html',{'errmsg':'请同意协议'})
#进行业务处理;进行用户注册
	#使用Django的认证方法
user = User.object.create_user(username,email,password)
user.is_active = 0  #修改激活状态
user.save()
#返回应答,跳转到首页
	将首页index.html放到模板文件中templates,在goods写入views视图,函数def index(), 配置goods的urls.py,
使用反向解析
	return  redirect(reverse('goods':'index'))
查看数据库
select* from df_user \G

显示注册页面和页面处理使用同意个url地址

1,修改hml文件中的提交地址
2,通过请求方式POST,和GET进行判断显示和处理,
if  request.match==GET:
	pass
else:
	pass

类视图(建议用这个)

1,类继承View
from django.views.generic import View

class MyView(View):
	def get(sel,request):
		return 
	def post
2,修改应用的urls.py,
 from myapp,views import MyView
urlpatterns = [
url(r'^',MyView.as_view()),
]

生成激活用户的tokon

Django天天生鲜项目-用户注册_第1张图片

#发送激活邮件,包含激活链接;/user/active/
	#激活链接中需要包含用户的身份信息并且把身份信息进行加密
	pip install itsdangerous 
	dump()加密,loads()解密
	#加密身份信息,生成激活的tokon

注册用户激活流程

1,在view中添加激活类视图
2,配置urls地址,使用正则捕获参数
Django天天生鲜项目-用户注册_第2张图片
进行创建登录视图函数
Django天天生鲜项目-用户注册_第3张图片

django内置函数发送激活邮件

django.core.mail
1,进行开启smtp服务
2,在setting进行配置文件
Django天天生鲜项目-用户注册_第4张图片
3,在接收数据处理函数中添加
发邮件操作
Django天天生鲜项目-用户注册_第5张图片

celery异步发送邮件

Django天天生鲜项目-用户注册_第6张图片

1,创建celery_tasks python包,在包里创建Celery实例对象,配置中间人
Django天天生鲜项目-用户注册_第7张图片
原发邮件位置改为
在这里插入图片描述
如果不是一台电脑需要在文件中增加配置代码
在这里插入图片描述

你可能感兴趣的:(python)