博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django 使用 cookie 实现简单的用户管理
阅读量:4350 次
发布时间:2019-06-07

本文共 2164 字,大约阅读时间需要 7 分钟。

1.保存在用户浏览器

2.可以主动清除
3.可以被伪造
4.跨域名 Cookie 不共享


创建一个项目:user_manager 和应用: app01

创建数据库,添加 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 adminfrom django.urls import pathfrom app01 import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('login.html', views.login),    path('index.html', views.index),]

在 templates 文件夹下创建两个 html 文件

# login.html    
Title
{% csrf_token %}
{
{ msg }}
# index.html
Title

Hello {
{ username }}

添加 views.py

from django.shortcuts import render, redirect# Create your views here.from app01 import modelsdef 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 = "用户名或密码错误"    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')

初始化数据库

python manage.py makemigrationspython manage.py migrate

启动

python manage.py runserver 8000

访问

输入错误的用户名或密码

1334255-20190610181026728-1738693181.png
输入正确的用户名和密码
1334255-20190610180651997-611336562.png
1334255-20190610180630304-791880038.png

转载于:https://www.cnblogs.com/klvchen/p/10999354.html

你可能感兴趣的文章
实验2
查看>>
SDUST第十一次oj作业液晶显示问题
查看>>
ThreadLocal 设计模式浅谈
查看>>
oracle pl/sql
查看>>
单例设计模式
查看>>
将序列转化成二叉排序树
查看>>
阿里巴巴手册之-Arrays.asList()数组转集合的问题
查看>>
ftp研究
查看>>
http keep - alive 与 长连接
查看>>
网络编程基础通信
查看>>
kali apt update 错误——下列签名无效: EXPKEYSIG ED444FF07D8D0BF6 Kali Linux Repository
查看>>
强制刷新!
查看>>
webservice加载异常
查看>>
OpenCV中对Mat里面depth,dims,channels,step,data,elemSize和数据地址计算的理解
查看>>
java基础:数组的拼接
查看>>
vue生命周期理解
查看>>
oracle alter
查看>>
06计算列
查看>>
嵌入式成长轨迹62【智能家居项目】【ARM 飞凌ok6410】【QT&QWT&sqlite3安装配置】...
查看>>
实验五
查看>>