Django 使用 cookie 實(shí)現(xiàn)簡(jiǎn)單的用戶管理功能
Cookie:
1.保存在用戶瀏覽器
2.可以主動(dòng)清除
3.可以被偽造
4.跨域名 Cookie 不共享
創(chuàng)建一個(gè)項(xiàng)目:user_manager 和應(yīng)用: app01
創(chuàng)建數(shù)據(jù)庫(kù),添加 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ù)庫(kù)
python manage.py makemigrations python manage.py migrate
啟動(dòng)
python manage.py runserver 8000
訪問(wèn) http://127.0.0.1:8000/index.html
輸入錯(cuò)誤的用戶名或密碼

輸入正確的用戶名和密碼


總結(jié)
以上所述是小編給大家介紹的基于Django 使用 cookie 實(shí)現(xiàn)簡(jiǎn)單的用戶管理功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Github創(chuàng)建個(gè)人訪問(wèn)Tokens令牌
這篇文章介紹了Github創(chuàng)建個(gè)人訪問(wèn)Tokens令牌的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Terraform集成簡(jiǎn)單Gitlab?CI方案詳解
這篇文章主要為大家介紹了Terraform?+?Gitlab?CI簡(jiǎn)單集成方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
vscode通過(guò)Remote SSH遠(yuǎn)程連接及離線配置的方法
這篇文章主要介紹了vscode通過(guò)Remote SSH遠(yuǎn)程連接及離線配置的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
chrome擴(kuò)展學(xué)習(xí) 右鍵菜單實(shí)現(xiàn)代碼
chrome擴(kuò)展學(xué)習(xí) 右鍵菜單實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-11-11
在Visual Studio Code環(huán)境中使用SVN的方案
這篇文章主要介紹了在Visual Studio Code環(huán)境中使用SVN的方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Grafana?系列之統(tǒng)一展示Prometheus數(shù)據(jù)源
這篇文章主要為大家介紹了Grafana?系列之統(tǒng)一展示Prometheus數(shù)據(jù)源配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
比特幣上的數(shù)獨(dú)游戲合約的實(shí)現(xiàn)代碼
這篇文章主要介紹了比特幣上的數(shù)獨(dú)游戲合約的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
VSCode遠(yuǎn)程XHR failed無(wú)法連接的問(wèn)題及解決方案
VSCode進(jìn)行遠(yuǎn)程連接時(shí)會(huì)檢查服務(wù)端的Server運(yùn)行情況,如未運(yùn)行則需要下載安裝,在下載過(guò)程中可能需要訪問(wèn)外網(wǎng),如果外網(wǎng)不通則連接過(guò)程失敗,解決方法是手動(dòng)下載離線安裝包,手動(dòng)解壓至指定的路徑即可,對(duì)VSCode遠(yuǎn)程無(wú)法連接問(wèn)題感興趣的朋友一起看看吧2024-03-03

