国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python編程django實現同一個ip十分鐘內只能注冊一次

2020-02-16 10:34:49
字體:
來源:轉載
供稿:網友

很多小伙伴都會有這樣的問題,說一個ip地址十分鐘內之內注冊一次,用來防止用戶來重復注冊帶來不必要的麻煩

邏輯:

取ip,在數據庫找ip是否存在,存在判斷當前時間和ip上次訪問時間之差,小于600不能注冊,到登錄界面,大于600可以注冊,設計一個數據庫來存儲這個ip地址和訪問時間,

class Ip(models.Model):  ip=models.CharField(max_length=20)  time=models.DateTimeField()  class Meta:    verbose_name = u'訪問時間'    verbose_name_plural = verbose_name  def __str__(self):    return self.ip

然后去

  python manage.py makemigrations
  python manage.py migrate

  這樣來更新我們的數據庫,然后我們運行我們的項目可以在后臺看到我們新注冊的ip的數據

 我們根據前面的邏輯,可以來設計我們的代碼,

from django.views.generic.base import Viewfrom blog.models import Ipclass RegView(View):  def get(self,request):    ipreques = request.META['REMOTE_ADDR']    try:      ip_c=Ip.objects.get(ip=ipreques)      if ip_c :        if (datetime.datetime.now()-ip_c.time).total_seconds()<600:          return render(request, 'login.html', {'msg': u'10分鐘內只能注冊一次'})        ip_c.time=datetime.datetime.now()        ip_c.save()        return render(request, 'reg.html')    except Exception as e:      new=Ip()      new.ip=str(ipreques)      new.time=datetime.datetime.now()      new.save()      return render(request, 'reg.html')  def post(self,request):    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=passwor1        use1.mobile=shouj        use1.email=youjian        use1.save()        return HttpResponseRedirect('login')      else:        return render(request,'reg.html',{'msg':u'請查看密碼是否一致'})    return render(request,'reg.html')

  其實這樣,我們的整個過程就已經構建完畢,代碼出來后,有小伙伴會問,你這代碼怎么和我用的不一樣,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 息烽县| 衡阳市| 旺苍县| 麟游县| 电白县| 甘谷县| 青海省| 开远市| 常州市| 乐山市| 柳江县| 上栗县| 岳阳市| 错那县| 夏邑县| 霍山县| 兰西县| 石城县| 水城县| 邛崃市| 安龙县| 钟祥市| 兴海县| 博白县| 志丹县| 中超| 清新县| 鹤山市| 聊城市| 招远市| 嘉黎县| 胶南市| 沧源| 玛纳斯县| 天等县| 宜兰县| 鄯善县| 广河县| 大兴区| 民丰县| 日喀则市|