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

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 实现简单的用户管理功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • 详解Python的Django框架中的Cookie相关处理

    浏览器的开发者在很早的时候就已经意识到, HTTP's 的无状态会对Web开发者带来很大的问题,于是(cookies)应运而生. cookies 是浏览器为 Web 服务器存储的一小段信息. 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies 来看看它是怎么工作的. 当你打开浏览器并访问 google.com ,你的浏览器会给Google发送一个HTTP请求,起始部分就象这样: GET / HTTP/1.1 Host: google.com ... 当 Google响应时,

  • Django中的cookie与session操作实例代码

    添加cookie: def login(req): if req.method=="POST": uf = UserInfoForm(req.POST) if uf.is_valid(): username = uf.cleaned_data["username"] password = uf.cleaned_data["password"] print username,password users = UserInfo.objects.fil

  • Django中cookie的基本使用方法示例

    前言 基于 Internet的各种服务系统应运而生,建立商业站点或者功能比较完善的个人站点,常常需要记录访问者的一些信息:论坛作为 Internet发展的产物之一,在 Internet 中发挥着越来越重要的作用,是用户获取.交流.传递信息的主要场所之一,论坛常常也需要记录访问者的一些基本信息(如身份识别号码.密码.用户在 Web 站点购物的方式或用户访问该站点的次数).目前公认的是,通过 Cookie 和 Session 技术来实现记录访问者的一些基本信息. 下面就来一起看看Django中coo

  • 深入探究Django中的Session与Cookie

    前言 Cookie和Session相信对大家来说并不陌生,简单来说,Cookie和Session都是为了记录用户相关信息的方式,最大的区别就是Cookie在客户端记录而Session在服务端记录内容. 那么Cookie和Session之间的联系是怎么建立的呢?换言之,当服务器接收到一个请求时候,根据什么来判断读取哪个Session的呢? 对于Django默认情况来说,当用户登录后就可以发现Cookie里有一个sessionid的字段,根据这个key就可以取得在服务器端记录的详细内容.如果将这个字

  • Django 中 cookie的使用

    Cookie是浏览器在客户端留下的一段记录,这段记录可以保留在内存或者硬盘上.因为Http请求是无状态的,通过读取cookie的记录,服务器或者客户端可以维持会话中的状态.比如一个常见的应用场景就是登录状态.Django里面,对cookie的读取和设置很简单.Cookie本身的格式类似字典,因此可以通过request的key或者get获取:然后他的设置则是通过response对象的set_cookie设定; 如果要取消cookie,把过期时间设置为当前时间就行了. 获取Cookie: reque

  • Django项目开发中cookies和session的常用操作分析

    本文实例讲述了Django项目开发中cookies和session的常用操作.分享给大家供大家参考,具体如下: COOKIES操作 检查cookies是否存在: request.COOKIES.has_key('<cookie_name>') 获取cookies: request.COOKIES.get('visits', '1') if 'last_visit' in request.COOKIES: request.COOKIES['last_visit'] 设置cookies: resp

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

    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

  • Vue+Node实现的商城用户管理功能示例

    本文实例讲述了Vue+Node实现的商城用户管理功能.分享给大家供大家参考,具体如下: 1.用户登陆 前端将用户输入的用户名密码post发送到后端,如果返回status=0,代表登陆成功,将hasLogin置为true,控制页面登陆按钮不显示,并显示返回的用户名nickname login(){ if(!this.username||!this.password){ this.errMsg="请输入用户名与密码!"; this.errShow=true; }else{ axios.po

  • django 利用pillow 进行简单的设置验证码功能(python)

    1.导入模块 并定义一个验证状态 from PIL import Image, ImageDraw, ImageFont from django.utils.six import BytesIO def verify_code(request): #引入随机函数模块 import random #定义变量,用于画面的背景色.宽.高 bgcolor = (random.randrange(20, 100), random.randrange( 20, 100), 255) width = 100

  • Servlet实现简单的用户登录功能实例代码

    1.创建html界面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="" method="post"> 用户名:<input type=&

  • java redis 实现简单的用户签到功能

    业务需求是用户每天只能签到一次,而且签到后用户增加积分,所以把用户每次签到时放到redis 缓存里面,然后每天凌晨时再清除缓存,大概简单思想是这样的 直接看代码吧如下 @Transactional @Override public void signIn(Integer memberId) throws BizException { if(memberId==null){ throw new BizException(ErrorCode.BIZ_EXCEPTION.getErrcode(), "

  • Django利用Cookie实现反爬虫的例子

    我们知道,Diango 接收的 HTTP 请求信息里带有 Cookie 信息.Cookie的作用是为了识别当前用户的身份,通过以下例子来说明Cookie的作用.例: 浏览器向服务器(Diango)发送请求,服务器做出响应之后,二者便会断开连接(会话结束),下次用户再来请求服务器,服务器没有办法识别此用户是谁,比如用户登录功能,如果没有 Cookie 机制支持,那么只能通过查询数据库实现,并且每次刷新页面都要重新操作一次用户登录才可以识别用户,这会给开发人员带来大量的冗余工作,简单的用户登录功能会

  • Django利用cookie保存用户登录信息的简单实现方法

    本文实例讲述了Django利用cookie保存用户登录信息的方法.分享给大家供大家参考,具体如下: 设置cookie response对象.set_cookie('key','value',多少秒后过期) 获取cookie request对象.COOKIES.get('key') 我们继续前一篇的代码 def hi(request): msg = {'result':''} loginSuccess = False # 是否登录成功标识 if user.userLogin(request.POS

  • Django Session和Cookie分别实现记住用户登录状态操作

    简介 由于http协议的请求是无状态的.故为了让用户在浏览器中再次访问该服务端时,他的登录状态能够保留(也可翻译为该用户访问这个服务端其他网页时不需再重复进行用户认证).我们可以采用Cookie或Session这两种方式来让浏览器记住用户. Cookie与Session说明与实现 Cookie 说明 Cookie是一段小信息(数据格式一般是类似key-value的键值对),由服务器生成,并发送给浏览器让浏览器保存(保存时间由服务端定夺).当浏览器下次访问该服务端时,会将它保存的Cookie再发给

  • Pinia入门学习之实现简单的用户状态管理

    目录 Store是什么? Store的应用场景? pinia是什么? 其他优点 应用示例 定义Store 使用Store 获取store的响应式数据 State 初始化 读取和写入state 订阅state变化 Getters 定义getter 访问getter Actions 定义action 订阅action 总结 Store是什么? 全局状态,用于在所有组件中,同步数据. Store的应用场景? 在整个应用程序中访问的数据(且不需要被持久化),例如导航栏中显示的用户信息,以及需要通过页面保

  • ExtJS GTGrid 简单用户管理

    部分源码: 复制代码 代码如下: <%@ page language="java" pageEncoding="GBK"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set var="ctx" value="${pageContext.request.contextPath}&

随机推荐