Django 使用 cookie 實(shí)現(xiàn)簡單的用戶管理功能
Cookie:
1.保存在用戶瀏覽器
2.可以主動(dòng)清除
3.可以被偽造
4.跨域名 Cookie 不共享
創(chuàng)建一個(gè)項(xiàng)目:user_manager 和應(yīng)用: app01
創(chuàng)建數(shù)據(jù)庫,添加 models.py
from django.db import models # Create your models here. class Classes(models.Model): caption = models.CharField(max_length=32) class Student(models.Model): name = models.CharField(max_length=32) cls = models.ForeignKey(Classes, on_delete=models.CASCADE) class Teacher(models.Model): name = models.CharField(max_length=32) cls = models.ForeignKey(Classes, on_delete=models.CASCADE) class Administrator(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32) 修改 urls.py from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('login.html', views.login), path('index.html', views.index), ]
在 templates 文件夾下創(chuàng)建兩個(gè) html 文件
# login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="login.html" method="post"> {% csrf_token %} <div> <label for="user">用戶名: </label> <input id="user" type="text" name="user"> </div> <div> <label for="pwd">密碼: </label> <input id="pwd" type="password" name="pwd"> </div> <div> <label></label> <input type="submit" value="登錄"> <span style="color: red;">{{ msg }}</span> </div> </form> </body> </html> # index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1> Hello {{ username }} </h1> </body> </html>
添加 views.py
from django.shortcuts import render, redirect # Create your views here. from app01 import models def login(req): # models.Administrator.objects.create( # username='klvchen', # password='klvchen' # ) message = "" if req.method == "POST": user = req.POST.get('user') pwd = req.POST.get('pwd') c = models.Administrator.objects.filter(username=user, password=pwd).count() if c: rep = redirect('index.html') rep.set_cookie('username', user) return rep else: message = "用戶名或密碼錯(cuò)誤" return render(req, 'login.html', {'msg': message}) def index(req): username = req.COOKIES.get('username') if username: return render(req, 'index.html', {'username': username}) else: return redirect('/login.html')
初始化數(shù)據(jù)庫
python manage.py makemigrations python manage.py migrate
啟動(dòng)
python manage.py runserver 8000
訪問 http://127.0.0.1:8000/index.html
輸入錯(cuò)誤的用戶名或密碼
輸入正確的用戶名和密碼
總結(jié)
以上所述是小編給大家介紹的基于Django 使用 cookie 實(shí)現(xiàn)簡單的用戶管理功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!
相關(guān)文章
2020史上最全I(xiàn)DEA插件總結(jié)(推薦收藏)
這篇文章主要介紹了2020史上最全I(xiàn)DEA插件總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-06-06Typora配置PicGo時(shí)提示Failed?to?fetch的問題解決(typora圖像問題)
這篇文章主要介紹了Typora配置PicGo時(shí)提示Failed?to?fetch的問題解決(typora圖像問題),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04PHP、JAVA、.NET這三種技術(shù)的區(qū)別分析
這篇文章主要介紹了PHP、JAVA、.NET這三種技術(shù)的區(qū)別分析,本文從多個(gè)方面介紹、對比了PHP、JAVA、.NET這三種技術(shù),需要的朋友可以參考下2014-08-08Elasticsearch索引的分片分配Recovery使用講解
這篇文章主要為大家介紹了Elasticsearch索引的分片分配Recovery使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04git工作區(qū)暫存區(qū)與版本庫基本理解及提交流程全解
這篇文章主要為大家介紹了git工作區(qū)暫存區(qū)與版本庫基本理解及提交流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-04-04編程語言里的靜態(tài)、動(dòng)態(tài)、強(qiáng)類型、弱類型等概念介紹
這篇文章主要介紹了編程語言里的靜態(tài)、動(dòng)態(tài)、強(qiáng)類型、弱類型等概念介紹,需要的朋友可以參考下2015-05-05