当前位置:
首页 > temp > python入门教程 >
-
python3 之 天天生鲜 项目(初学者)3
用户模块
实现:
注册----登录 功能 验证
这里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')
后期要用它来 登录验证
出处:https://www.cnblogs.com/Py-beginner/p/13826014.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数