一個登陸網站驗證身份的簡單例子
阿新 • • 發佈:2018-02-21
render end 如何 classes name 信息 port ret 如何獲取
按照需求設計
- 登陸註冊
- 人員屬於不同的班級
- 學生操作
- 班級操作
- 老師操作
- 增刪改查
開發
- 定義數據庫表結構
- 登陸註冊
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‘)
一個登陸網站驗證身份的簡單例子