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. AIoT的发展路上,英特尔如何通过边缘计算掀起产业变革
  2. 翻译连载 | 第 9 章:递归(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  3. VTK:IO之GenericDataObjectReader
  4. MYSQL编写过程和解析过程的差异
  5. 深度学习前人精度很高了怎么创新?
  6. outlook 2010邮件传输接口错误解决一例
  7. C# 获得当前应用程序路径
  8. JAVA JDK API(中文) 1.6、1.8
  9. 简单的视频制作及在会声会影中出现的问题及其解决方法
  10. 06计算机优秀毕业论文-总结和展望
  11. python爬取招聘网站源码及数据分析_如何用爬虫抓取招聘网站的职位并分析
  12. Increasing Faithfulness in Knowledge-Grounded Dialogue with Controllable Features
  13. 借助抖音节点营销 佳沛打开“金九”新局面
  14. 为什么黑客不敢攻击微信钱包?
  15. (Demo分享)利用JavaScript(JS)做一个可输入分钟的倒计时钟功能
  16. pvid与access的关系_vlan pvid vid access口 trunk口
  17. html简单打字游戏,javascript实现简单打字游戏
  18. 树莓派驱动L9110H灭火风扇模块
  19. 译文 Ceph:一个可扩展,高性能分布式文件系统
  20. 避免毛孩过胖引发健康问题 机器人帮你逗毛孩让他动起来!

热门文章

  1. Infor 成功举办 Infor Next China
  2. Docker Hub 将放弃支持客户端 1.5 及以下版本
  3. 项目清理和删除svn信息(转)
  4. 递归,yield,参数槽
  5. win10 默认程序 edge
  6. 关系型数据库中主键(primary key)和外键(foreign key)的概念。
  7. 吐血整理!必须收藏,44条代码优化细节
  8. 厉害了!JMeter 模拟超过 5 万的并发用户!
  9. 求求你们了,别再写满屏的 if/ else 了!
  10. 牛逼!终于有人开源了一份基于SSM框架实现了支付宝支付功能的完整源代码......