django 实现同一个ip十分钟内只能注册一次(redis…
2018-06-17 23:25:29来源:未知 阅读 ()
上一篇文章,django 实现同一个ip十分钟内只能注册一次 的时候,我们在注册的时候选择使用的使我们的数据库来报错我们的注册的ip信息,可是如果数据量大,用户多的时候,单单靠我们的数据库
来储存我们的注册的ip地址信息。 而使用redis来存储的话,这样我们就少了一张表,少了数据库查询,你要是开发经验多了,就明白这里少用数据库查询的好处了,会减少很大的数据库压力。
那么我们现在来试着去构思我们的注册的内容,思路:
注册,用户post数据》取到ip去redis去判断,存在》十分钟内不能注册提示
注册,用户post数据》取到ip去redis去判断,不存在》注册,在redis中去存储这个ip信息过期时间为600s
接下来就是去实现我们的代码了。
import redis r=redis.Redis(host='127.0.0.1',port=6379,db=0) class RegView(View): def get(self,request): return render(request,'reg.html') def post(self,request): ipreques = request.META['REMOTE_ADDR'] ip_re = r.get(ipreques) if ip_re: return render(request, 'reg.html', {'msg': u'10分钟只能注册一次'}) username=request.POST['username'] if len(getuser(username))<=0: return render(request,'reg.html',{'msg':u'用户名应该是6-16组成'}) passwor1 = request.POST['password'] passwor2 = request.POST['password1'] shouj = request.POST['shouji'] if len(getPhoneNumFromFile(shouj))<=0: return render(request, 'reg.html', {'msg':u'手机号格式是否正确'}) shouji = User.objects.filter(mobile__exact=shouj) if shouji: return render(request, 'reg.html', {'msg': u'手机号已经存在'}) youjian = request.POST['email'] if len(getMailAddFromFile(youjian))<=0: return render(request, 'reg.html', {'msg': u'邮箱格式是否正确'}) use=User.objects.filter(username__exact=username) if use: return render(request,'reg.html',{'msg':u'用户名已经存在'}) else: if passwor1==passwor2: use1=User() use1.username=username use1.password=make_password(passwor1) use1.mobile=shouj use1.email=youjian use1.save() r.set(ipreques,1,ex=600) return HttpResponseRedirect('login') else: return render(request,'reg.html',{'msg':u'请查看密码是否一致'})
代码实现后,我们需要进行去验证, 首次注册成功,
我们来看看redis存没有
再次注册
这样我们的redis版本的登录注册已经实现完毕。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Django项目中使用qq第三方登录。 2019-08-13
- python day2-爬虫实现github登录 2019-08-13
- Django和前端用ajax传输json等数据 2019-08-13
- Django基本知识 2019-08-13
- JavaScript获取Django模板中指定键值的数据,使用过滤器 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash