利用服务端session保存用户信息
login_session.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_session' %}" 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>{{ error }}</div></form></div> </body> </html>
index_session.html文件
<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><meta ><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_session' %}">退出</a></li></ul></div></div> </nav><div class="container"></div></body> </html>
urls.py文件
from django.contrib import admin from django.urls import path from coo import views from django.views.generic.base import RedirectViewurlpatterns = [path('admin/', admin.site.urls),path("favicon.ico", RedirectView.as_view(url='static/favicon.ico')),# session 实现path('login_session/', views.login_session, name='login_session'),path('index_session/', views.index_session, name='index_session'),path('logout_session/', views.logout_session, name='logout_session'), ]
views.py文件
from django.shortcuts import render, redirect, HttpResponse, reverse from coo.models import UserInfo# Create your views here.# ############### SESSION的login_session页面 ############### def login_session(request):if request.method == 'GET':return render(request, 'login_session.html')else:# 获取网页form表单传来的usrusr = request.POST.get('usr')# 获取网页form表单传来的pwdpwd = request.POST.get('pwd')# 数据库查询该用户是否存在usr_obj = UserInfo.objects.filter(usr=usr, pwd=pwd).first()print(0000000000000000000)# 信息存在,进行保存if usr_obj:# 用户认证信息存储到session文件request.session["username"] = usrrequest.session["is_active"] = True'''if request.COOKIE.get("sessionid"):random_str=request.COOKIE.get("sessionid")在django-seesion表中过滤session-key=random_str的记录进行updateelse:1 生成一个随机字符串 23423hkjsf890234sd2 向django-session表中插入记录session-key session-data23423hkjsf890234sd {"susername":"egon","slogin":True}3 响应set_cookie: {"sessionid":23423hkjsf890234sd}'''# 登录成功跳转到主页index_sessionreturn redirect("/index_session/")else:print(999999999999999)# 如果不存在,进行信息提示error = 'USERNAME AND PASSWORD DO NOT MATCH'return render(request,'login_session.html',{'error':error})# ############### SESSION的index_session页面 ############### def index_session(request):'''request.session1 request.COOKIE.get("sessionid") :23423hkjsf890234sd2 在django-session表过滤session-key=23423hkjsf890234sd的记录3 取过滤记录的session-data反序列化成数据字典:{"susername":"egon","slogin":True}'''is_active = request.session.get("is_active")if not is_active:return redirect("/login_session/")username = request.session.get("username")return render(request, 'index_session.html', locals())# ############### SESSION的logout_session ############### def logout_session(request):'''1 request.COOKIE.get("sessionid") :23423hkjsf890234sd2 在django-session表过滤session-key=23423hkjsf890234sd的记录删除3 response.delete_cookie("sessionid")'''request.session.flush()return redirect("/login_session/")
转载于:https://www.cnblogs.com/apollo1616/articles/9885131.html
利用服务端session保存用户信息相关推荐
- 利用redis代替session保存用户 减少tomcat压力
背景: 通常系统中用户登录之后会保存用户信息到session,查询个人当前登录用户所带信息时,直接在session中获取当前登录用户,然后通过sql 的where条件筛选. 但是如果大量用户的信息存 ...
- php通过session保存用户信息,如何在php中利用session与cookie保存用户的登录信息
如何在php中利用session与cookie保存用户的登录信息 发布时间:2020-12-18 15:49:56 来源:亿速云 阅读:95 作者:Leah 如何在php中利用session与cook ...
- 小程序如何保存用户信息(保持登录状态)?
小程序如何保存用户信息?如何保存用户登录状态? 提供一种实现思路,仅供参考. 第一步:启动小程序后,会静默授权,通过wx.login获取登录凭证code,再从后台换取openId,同时将session ...
- 登录页面设置cookie,用户登录后,创建cookie保存用户信息
代码要求: 用户登录后,创建cookie保存用户信息 设置cookie的有效期为5分钟 在登录页循环遍历cookie数组,判断是否存在指定名称的cookie,若存在则直接跳转至欢迎页面 代码实现过程: ...
- http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎
TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...
- 登录页跳转时保存用户信息-遇坑记
项目中遇到的问题,重新建前端界面,遇到了这个问题. 项目中使用Angular JS + admin LTE + bootstrap3 保存用户信息,我有两种思路,一个是使用Angular JS-ser ...
- 模拟QQ聊天小项目收尾---界面展示服务端与客户端进行信息交互(用到的知识:io,线程,Swing界面,面向对象思想...... )
大家好,我是一位在java学习圈中不愿意透露姓名并苟且偷生的小学员,如果文章有错误之处,还望海涵,欢迎多多指正 如果你从本文学到有用的干货知识,那么请您尽量点赞,关注,评论,收藏 这两天我一直在设计这 ...
- 【探花交友】保存用户信息、上传用户头像、用户信息管理
文章目录 1.3.保存用户信息 1.4.上传用户头像 2.用户信息管理 2.1.查询用户资料 2.2.更新用户资料 1.3.保存用户信息 1.3.1.接口文档 YAPI接口地址:http://192. ...
- php开发工程师名片,PHP编程:利用PHP自动生成印有用户信息的名片
<PHP编程:利用PHP自动生成印有用户信息的名片>要点: 本文介绍了PHP编程:利用PHP自动生成印有用户信息的名片,希望对您有用.如果有疑问,可以联系我们. 前言 PHP教程无论是自己 ...
- 腾讯游戏人脸识别验证是否会保存用户信息
回答依据链接https://jiazhang.qq.com/open/pc/face.html 由于最近腾讯系列的游戏都要求用户提供真实的姓名.身份证号和实时的人脸识别,导致很多人担心腾讯此举是否会泄 ...
最新文章
- anaconda怎么查看python版本-anaconda如何查看并管理python环境
- How can ifm help the SME WELL?
- java获取本地外网ip地址
- python 里面的单下划线与双下划线的区别
- 陕理工高级语言程序设计实验 (C)答案,陕理工高级语言程序计实验 (C)模板.doc
- 使用Filter实现用户自动登录
- Microsoft Office SharePoint Server 2007-协同办公之师
- MySql+Memcached架构的问题
- STM32——库函数版——超声波测距模块
- PXC 57 二进制安装
- java验证码实现简单_简单实现Java验证码功能
- SEO与SEM的区别和联系
- python程序设计课程标准_《Python程序设计》课程标准
- 2018高中计算机学考,关于2018—2019学年普通高中学业水平考试科目考试时间安排的通知...
- 【论文阅读】Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields
- MFC 句柄Hwnd 与 窗口Wnd的联系
- Python爬虫入门教程:超级简单的Python爬虫教程
- 使用百度API实现热点(WIFI)、GPS、基站定位
- 阿里云服务器选购指南(图文教程详解)
- Hexo+Github博客搭建之Matery主题个性化修改篇(一)
热门文章
- Keras下使用多GPU训练模型
- 为什么计算机桌面显示器,电脑显示屏不显示是怎么回事 电脑显示屏不显示如何解决【详细介绍】...
- cocos android保存图片到相册,android平台 cocos2d-x 读取相册数据
- java考勤表导出_考勤表如何导出?
- 2015 CCPC 这次,我为自己鼓掌
- (省赛系列——团队第三场)
- php header带session,PHP接口跨域header头以及Session跨域方法
- 进位位判别法_''进位-判断-执行''的通用思想
- phpstorm ctrl 鼠标左键 无效_击败无聊的办公室重复操作,用 Python 控制鼠标和键盘...
- 【“新智认知”杯上海大学联赛】E-CSL的魔法(序列b到序列b‘需要的数据交换次数)