python3 之 天天生鲜 项目(初学者)3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python3 之 天天生鲜 项目(初学者)3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2421字,纯文字阅读大概需要4分钟。
内容图文
用户模块
实现:
注册----登录 功能 验证
这里views.py使用类方法
from django.conf.urls import url from users import views urlpatterns = [ url(r'^register', views.RigisterView.as_view(),name='register'), ]
class RigisterView(View): def get(self,request): return render(request,'register.html') def post(self,request): # 获取注册信息 username = request.POST.get('user_name') password = request.POST.get('pwd') cpassword = request.POST.get('cpwd') email = request.POST.get('email') allow = request.POST.get('allow') # 数据处理 验证数据完整性 if not all([username, password, cpassword, email, allow]): return render(request, 'register.html', {'errmsg': '数据不完整'}) # 验证密码是否一致 if password != cpassword: return render(request, 'register.html', {'errmsg': '密码不一致'}) # 验证邮箱 # [\w\.\-]+ 指一个或多个[\w\.\-] 这样的字符,如 "aaa" "-ab" "c" "s._-l" if not re.match(r'^[a-z0-9][\w\.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email): return render(request, 'register.html', {'errmsg': '邮箱格式不正确'}) # 验证是否勾选协议 if allow != 'on': return render(request, 'register.html', {'errmsg': '请同意协议'}) # 验证用户名是否存在(这里使用不重复户用名) try: user = User.objects.get(username=username) except User.DoesNotExist: user = None # 如果不存在 赋值为空 if user: # 如果存在 return render(request, 'register.html', {'errmsg': '用名已存在'}) # 保存到数据库 mysql user = User.objects.create_user(username, email, password) user.is_active = False # 0 也可以 邮箱未验证设置为0 user.save() # 邮箱激活 # 获取token token = user.gennerate_activeate_token() # 发送邮件 celery_send_email.delay(email,token) return render(request, 'login.html')
注册 --------- 功能 mysql.......celery.....redis........
这里使用 异步邮箱验证(celery) 前面有讲到 异步实现的方法
代理redis 库4的信息
填写注册信息
mysql查看注册信息
收到激活链接
接下来就是要实现邮箱验证 active
from django.conf.urls import url from users import views urlpatterns = [ url(r'^activate(?P<token>.+)/', views.activate,name='activate'), ]
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
def activate(request,token): serializer = Serializer(settings.SECRET_KEY,3600) # 设置3600秒过期 try: json_str = serializer.loads(token) except: return HttpResponse('连接已过期') user_id = json_str['confirm']try: user = User.objects.get(id=user_id) except User.DoesNotExist: return HttpResponse('账号存在异常') #邮箱验证通过 修改 user.is_active = True user.save() return render(request,'login.html')
后期要用它来 登录验证
.....
内容总结
以上是互联网集市为您收集整理的python3 之 天天生鲜 项目(初学者)3全部内容,希望文章能够帮你解决python3 之 天天生鲜 项目(初学者)3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。