2017-06-26 81 views
-1

我需要幫助。我需要根據使用Django和Python的輸入值匹配記錄。我在下面解釋我的代碼。如何使用Django和Python匹配並獲取記錄計數

models.py:

class User(models.Model): 
    """docstring for User""" 

    uname = models.CharField(max_length=200) 
    password = models.CharField(max_length=200) 
    date = models.DateTimeField(default=datetime.now, blank=True) 

Views.py:

def loginsave(): 
    if request.method == 'POST': 
     name = request.POST.get('uname') 
     password = request.POST.get('pass') 

在這裏,我需要記錄匹配按用戶名和passord。如果有任何記錄,則返回1,否則返回0.請幫助。

+1

首先,這是通過簡單的文檔回答一個簡單的問題。其次,**不要這樣做**;您不得以明文形式存儲密碼。使用Django的內置身份驗證系統。 –

+0

您嘗試了哪些方法以及哪些方法對此解決方案起不了作用? –

+0

@丹尼羅斯曼:是的,我知道默認的形式,但我需要自己測試。如果這種情況引發了怎麼做。 – subhra

回答

0

models.py

class User(models.Model): 
    """docstring for User""" 

    uname = models.CharField(max_length=200) 
    password = models.CharField(max_length=200) 
    date = models.DateTimeField(default=datetime.now, blank=True) 

Views.py:

from models import User 

def loginsave(): 
    if request.method == 'POST': 
     name = request.POST.get('uname') 
     password = request.POST.get('pass') 
     users = Users.objects.filter(uname=name, password=password).count() 
     if users == 0: 
      return 0 
     elif users > 0: 
      return 1 

首先你需要發佈的用戶名和密碼,查詢用戶表,並得到返回的記錄數。

然後根據您的需要使用計數。

或者,我寧願下面的技術來避免重複的代碼。如果我們可以在模型中編寫查詢代碼,我們可以避免重複,以防萬一您想在將來或其他某些功能中進行類似的檢查。

models.py

class User(models.Model): 
    """docstring for User""" 

    uname = models.CharField(max_length=200) 
    password = models.CharField(max_length=200) 
    date = models.DateTimeField(default=datetime.now, blank=True) 

    @staticmethod 
    def checkUserExists(un, pwd): 
     users = Users.objects.filter(uname=name, password=password).count() 
     if users == 0: 
      return 0 
     elif users > 0: 
      return 1 

Views.py:所有的

from models import User 

def loginsave(): 
    if request.method == 'POST': 
     name = request.POST.get('uname') 
     password = request.POST.get('pass') 
     return User.checkUserExists(un=name, pwd=password) 
相關問題