login.html文件

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Apollo</title><!-- 最新版本的 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- 最新的 Bootstrap 核心 JavaScript 文件 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"crossorigin="anonymous"></script><script></script>
</head>
<body>
<div class="container"><form action="{% url 'login' %}" method="post">{% csrf_token %}<div class="col-md-6 col-md-offset-3">{# 输入账号 #}<div class="input-group"><span class="input-group-addon" id="sizing-addon2">账号</span><input type="text" class="form-control" name="usr" placeholder="Username"aria-describedby="sizing-addon2"></div><br>{# 输入密码 #}<div class="input-group"><span class="input-group-addon" id="sizing-addon2">密码</span><input type="text" class="form-control" name="pwd" placeholder="Password"aria-describedby="sizing-addon2"></div><br>{# 提交按钮 #}<button class="btn btn-default pull-right">提交</button></div></form></div>
</body>
</html>

index.html文件

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Apollo</title><!-- 最新版本的 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- 最新的 Bootstrap 核心 JavaScript 文件 --><script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"crossorigin="anonymous"></script><script src="/static/jquery.js"></script></head>
<body><nav class="navbar navbar-inverse navbar-fixed-top"><div class="container"><a class="navbar-brand" href="javascript:void(0);">Apollo</a><ul class="nav navbar-nav"><li class="active"><a href="javascript:void(0);">主页</a></li><li><a href="javascript:void(0);">python</a></li><li><a href="javascript:void(0);">html</a></li><li><a href="javascript:void(0);">css</a></li><li><a href="javascript:void(0);">javascript</a></li></ul><form class="navbar-form navbar-left" action="javascript:void(0);"><input type="text" placeholder="请输入关键词" class="form-control"><button type="submit"><span class="glyphicon glyphicon-search"></span></button></form><a class="btn navbar-btn btn-primary btn-sm navbar-right" href="javascript:void(0);">免费下载</a><div class="navbar-right"><ul class="nav navbar-nav"><li class="navbar-text">你好 {{ usr }}</li><li><a class="navbar-link" href="{% url 'logout' %}">退出</a></li></ul></div></div>
</nav></body>
</html>

urls.py文件

from django.contrib import admin
from django.urls import path
from coo import viewsurlpatterns = [path('admin/', admin.site.urls),path('login/', views.login, name='login'),path('index/', views.index, name='index'),
]

views.py文件

from django.shortcuts import render, redirect, HttpResponse
from coo.models import UserInfo# Create your views here.# ############### COOKIES的login.html页面 ###############
def login(request):# 1 访问http://127.0.0.1:8080/login/# 2.根据请求方式分情况处理# 2.1 处理GET请求if request.method == 'GET':# 2.1.1返回login.html页面return render(request, 'login.html')# 2.2 处理POST请求else:# 2.2.1获取usr字段值usr = request.POST.get('usr')# 2.2.2获取pwd字段值pwd = request.POST.get('pwd')# 3验证信息# 3.1从数据库找与usr, pwd一样的字段user_obj = UserInfo.objects.filter(usr=usr, pwd=pwd).first()# 3.2分情况处理验证结果# 3.2.1验证通过if user_obj:# 验证通过,重定向到首页obj = redirect("/index/")# 设置cookie值,username:apolloobj.set_cookie("username", usr)# 设置cookie值,状态键值对:is_login:True,# 设置cookie值,时效键值对:max_age:3600(Second) * 24(Hour) * 7(Day),# 7(Day), 24(Hour), 60(Minutes), 60(Second)obj.set_cookie("is_login", True, max_age=3600 * 24 * 7)return obj# 3.2.2验证不通过else:# 验证不通过,返回错误提示.return HttpResponse('error')# ############### COOKIES的index.html页面 ###############
def index(request):# 1.获取cookie值print(request.COOKIES)# 2.获取is_login的状态is_login = request.COOKIES.get("is_login")# 3.根据is_login情况分支处理# 3.1 当is_login值为Falseif not is_login:# 3.1.1重定向到登录页面,让用户先登录.return redirect("/login/")# 3.2 当is_login值为Trueelse:# 此处username与设置set_cookie时写的名字保持一致# obj.set_cookie("username", usr)usr = request.COOKIES.get("username")return render(request, 'index.html', {'usr':usr})# ############### COOKIES的logout ###############
def logout(request):request.session.flush()return redirect("/login/")

转载于:https://www.cnblogs.com/apollo1616/articles/9884428.html

利用客户端cookie保存用户信息相关推荐

  1. 登录页面设置cookie,用户登录后,创建cookie保存用户信息

    代码要求: 用户登录后,创建cookie保存用户信息 设置cookie的有效期为5分钟 在登录页循环遍历cookie数组,判断是否存在指定名称的cookie,若存在则直接跳转至欢迎页面 代码实现过程: ...

  2. php通过session保存用户信息,如何在php中利用session与cookie保存用户的登录信息

    如何在php中利用session与cookie保存用户的登录信息 发布时间:2020-12-18 15:49:56 来源:亿速云 阅读:95 作者:Leah 如何在php中利用session与cook ...

  3. 登录页跳转时保存用户信息-遇坑记

    项目中遇到的问题,重新建前端界面,遇到了这个问题. 项目中使用Angular JS + admin LTE + bootstrap3 保存用户信息,我有两种思路,一个是使用Angular JS-ser ...

  4. (案例)使用Cookie保存用户最后一次访问的时间

    文章目录 需求 分析 示例代码 需求 1.访问一个Servlet,如果获取不到上一次访问的时间,则提示:您好,欢迎访问. 2.如果可以获取上一次访问的时间,则提示:您好,欢迎回来,您上次访问时间为:显 ...

  5. 【探花交友】保存用户信息、上传用户头像、用户信息管理

    文章目录 1.3.保存用户信息 1.4.上传用户头像 2.用户信息管理 2.1.查询用户资料 2.2.更新用户资料 1.3.保存用户信息 1.3.1.接口文档 YAPI接口地址:http://192. ...

  6. 小程序如何保存用户信息(保持登录状态)?

    小程序如何保存用户信息?如何保存用户登录状态? 提供一种实现思路,仅供参考. 第一步:启动小程序后,会静默授权,通过wx.login获取登录凭证code,再从后台换取openId,同时将session ...

  7. Java Web —— Session 和 cookie 保存登录信息

    session 与 cookie cookie 与 session 应用于互联网中的一项基本技术--会话(客户端与服务端的交互)跟踪技术,用来跟踪用户的整个会话.简单来说,cookie 是通过在客户端 ...

  8. [转]Asp.Net Core 简单的使用加密的Cookie保存用户状态

    本文转自:http://www.cnblogs.com/Joes/p/6023820.html 在以前的Asp.Net中可以用 FormsAuthentication 类的一系列方法来使用加密的Coo ...

  9. 使用cookie保存用户的浏览记录

    我们在写关于用户对商品额的浏览记录的时候一般使用cookie进行记录,cookie一般保存字符串比较常用,如果想保存对象可以使用序列化,这里不做过多的解释,我们现在只做简单的cookie应用,cook ...

  10. 腾讯游戏人脸识别验证是否会保存用户信息

    回答依据链接https://jiazhang.qq.com/open/pc/face.html 由于最近腾讯系列的游戏都要求用户提供真实的姓名.身份证号和实时的人脸识别,导致很多人担心腾讯此举是否会泄 ...

最新文章

  1. 禁用outlook2007 垃圾邮件过滤功能
  2. Android程序ToDoList增加配置项页面
  3. 中望cad2018中文版
  4. 8-1日复习 模板函数 模板类
  5. @Transactional 使用
  6. 我们为什么要搞长沙.NET技术社区?
  7. 使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试
  8. Android Hello World 实例【TODO】
  9. mysql neatbean_使用MySQL的NetBeans中的SQL语法错误
  10. qq浏览文件服务器,腾讯浏览服务
  11. [UWP]涨姿势UWP源码——IsolatedStorage
  12. python基础: 选择语句
  13. linux 使用VI命令怎么删除输入内容,linux系统vi编辑器常用命令及使用方法。
  14. Qt6.2.1在线安装教程
  15. golang生成随机数
  16. HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第3章初识CSS
  17. B. Dubious Cyrpto(思维+枚举)
  18. python signal模块作用_Python中的signal模块和Ctrl+C操作
  19. adb脚本选择语句_常用adb命令汇总(绝对干货)
  20. 使用GeoGebra来进行项目辅助开发

热门文章

  1. 电商App如何让用户直接打开商品详情页
  2. Oracle系列:(22)视图
  3. phpwind8.7升级9.0.1过程(三)20130107升级到20130227
  4. java中map的使用和排序使用
  5. mysql安装手册(2)
  6. Oracle根据外键名称查找关联的表与列
  7. 终于实现了 SpringBoot+WebSocket实时监控异常....
  8. 一个Bug你改了两天,真有这么难吗?
  9. 手机QQ Hybrid 的架构演进
  10. 不知道这十项Linux常识,就别说自己玩过Linux!