1. 程式人生 > >一個登陸網站驗證身份的簡單例子

一個登陸網站驗證身份的簡單例子

render end 如何 classes name 信息 port ret 如何獲取

按照需求設計
  1. 登陸註冊
  2. 人員屬於不同的班級
  3. 學生操作
  4. 班級操作
  5. 老師操作
  6. 增刪改查
開發
  1. 定義數據庫表結構
  2. 登陸註冊
class Classes(models.Model):
    caption = models.CharField(max_length = 32)

class Student(models.Model):
    name = models.CharField(max_length = 32)
    cls = models.Foreignkey(‘Classes‘)

class Teacher(models.Model):
    name = models.CharField(max_length = 32)
    username= models.CharField(max_length = 32)
    password = models.CharField(max_length = 32)    
    cls = models.ManyToMany(‘Classes‘)
    

登陸成功之後需要保持狀態,記錄登陸狀態
如何獲取這個呢?需要通過cookies session等

下面講述一個簡單的案例:
一個可以登陸,顯示用戶登陸後信息的狀態的簡單頁面

我們先來設計表結構
有幾種用戶身份: 學生 老師 管理員
學生屬於班級 老師也屬於班級
一個班級有多個學生
一個班級有多個老師 一個老師可以任教多個班級

由此可以看到 班級和學生之間是一對多的關系
老師和班級之間是多對多的關系
因此,對應到Django的models的設計來看,班級和學生之間是外鍵關系
老師和班級之間是ManyToMany關系
據此設計吧表結構如下:

class classes(models.Model):
     caption = models.CharField(max_length = 32)

class Student(models.Model):
    name = models.CharField(max_length = 32)
    cls = models.Foreignkey(‘Classes‘)

class Teacher(models.Model):
   name = models.CharField(max_length = 32)
   username = models.CharField(max_length = 32)
   password = models.CharField(max_length = 32)
   cls = models.ManyToMany(‘Classes‘)
   

表結構設計好之後,就來編寫 views了
邏輯要實現:
用戶登陸,root+root(用戶名家和密碼) 則判斷用戶登陸成功,跳轉登陸成功之後的頁面
用戶登陸失敗,則提示用戶登陸失敗,重新登陸

我們先用CBV的方法編寫


from django.shortcut import render
from django.shortcut import redirect

def login(request):
      msg = ""
      if request.method == "POST":
            print request.method
            username = request.POST.get("username")
            password = request.POST.get("password")
            
            if username == "root" and password == "root":
                 return redirect(‘/index.html‘)
            else:
                msg = "請輸入正確的用戶名和密碼"
                return render(request, ‘login.html‘, {‘msg‘: msg})
                
       return render(request, ‘login.html‘, {‘msg‘: msg})
            
            
def index(request):
     msg = ""
     username = request.get_cookie("username"):
     if username:
          return render(request, ‘index.html‘, {‘username‘: username})
    else:
         return render(request, ‘login.html‘)

一個登陸網站驗證身份的簡單例子