Django 使用 cookie 实现简单的用户管理功能

所属分类: 网络编程 / 其它综合 阅读数: 1837
收藏 0 赞 0 分享

Cookie:

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 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 文件夹下创建两个 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 = "用户名或密码错误"
  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 makemigrations
python manage.py migrate

启动

python manage.py runserver 8000

访问 http://127.0.0.1:8000/index.html

输入错误的用户名或密码

输入正确的用户名和密码


以上所述是小编给大家介绍的基于Django 使用 cookie 实现简单的用户管理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

更多精彩内容其他人还在看

详解VScode自动补全CSS3前缀插件以及配置无效的解决办法

这篇文章主要介绍了详解VScode自动补全CSS3前缀插件以及配置无效的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

2020史上最全IDEA插件总结(推荐收藏)

这篇文章主要介绍了2020史上最全IDEA插件总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

IDEA开启Run Dashboard的配置详解

这篇文章主要介绍了IDEA开启Run Dashboard的配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

VSCode + WSL 2 + Ruby环境搭建图文详解

这篇文章主要介绍了VSCode + WSL 2 + Ruby环境搭建,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Python和Go成为2019年最受欢迎的黑客工具(推荐)

这篇文章主要介绍了Python和Go成为2019年最受欢迎的黑客工具,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

SHA:安全散列算法简析 附实例

SHA (Secure Hash Algorithm,译作安全散列算法) 是美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的一系列密码散列函数
收藏 0 赞 0 分享

有关微信的小程序和小游戏的区别

这篇文章主要介绍了有关微信的小程序和小游戏的区别,本文通过图文文字相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

程序员鼓励师插件Rainbow Fart(彩虹屁)

这篇文章主要介绍了程序员鼓励师插件Rainbow Fart(彩虹屁)的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

盘点网络编程必须要知道的基础知识

这篇文章主要介绍了盘点网络编程必须要知道的基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

fastjson到底做错了什么?为什么会被频繁爆出漏洞?(推荐)

前段时间,fastjson被爆出过多次存在漏洞,很多文章报道了这件事儿,并且给出了升级建议。本文给大家分享fastjson的releaseNote以及部分源代码。感兴趣的朋友跟随小编一起看看吧
收藏 0 赞 0 分享
查看更多