国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python編程django實現同一個ip十分鐘內只能注冊一次

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

2020-12-15 00:58北漂的雷子 Python

這篇文章主要介紹了Python編程django實現同一個ip十分鐘內只能注冊一次的相關內容,具有一定參考價值。需要的朋友可以了解下。

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

邏輯:

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

?
1
2
3
4
5
6
7
8
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的數據

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from django.views.generic.base import View
from blog.models import Ip
class 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')

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

我們都是函數式編程,其實很簡單,我們去集成View類就可以實現我們的面向對象的編程,在url中我們只需要這么來寫我們的代碼。

url(r'^reg$', RegView.as_view(),name='reg'),

這樣我們就可以完成了限制同個ip一段時間的注冊的次數。

總結

以上就是本文關于Python編程django實現同一個ip十分鐘內只能注冊一次的全部內容,希望對大家有所幫助。有什么問題可以隨時留言,小編會及時回復大家的。

原文鏈接:http://www.cnblogs.com/leiziv5/p/7774768.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲免费观看 | 欧美亚洲国产一区二区三区 | 国产成人亚洲精品 | 精品国产污网站污在线观看15 | 男人午夜天堂 | 中文字幕三区 | 春色网站| 亚洲va中文字幕 | av高清在线看 | 韩国久久 | 国产精品一区二区三区免费 | 成人在线精品视频 | 狠狠操一区二区三区 | 国产一级特黄 | 国产日韩一级片 | 成人免费一区二区三区视频网站 | 91视频.com| 黄色影院 | 黄色毛片一级片 | 国产精品三级久久久久久电影 | 国产精品久久久久久久免费大片 | 中文字幕在线视频观看 | 青青久草在线 | 久久久久久久久久久久久久av | 午夜精品久久 | 网站黄色在线观看免费 | 亚洲性人人天天夜夜摸 | 亚洲日本视频 | 久久久亚洲精品视频 | 国产精品99久久久久久宅男 | 欧美在线观看免费观看视频 | 午夜精品网站 | 日韩一区二区三区在线 | 韩国一区二区视频 | 久久久久国产一区二区三区 | 亚洲成人一区二区三区 | 免费成人av | 俺去俺来也在线www色官网 | 国产精品日本欧美一区二区三区 | 偷拍第一页 | 97色在线观看免费视频 |