Django中使用session保持用户登陆连接的例子
作者:ins_s 发布时间:2021-08-29 03:27:30
标签:Django,session,用户登陆
使用session保持用户登陆连接
在 view 中 login() 视图函数里增加如下语句
不允许重复登录语句
if request.session.get('is_login',None):
return HttpResponseRedirect(reverse('index'))
一旦用户名和密码输入正确,就往 session 字典内写入用户状态和数据
request.session['is_login'] = True
request.session['user_id'] = db_user.id
request.session['user_name'] = db_user.name
对于 logout() 方法进行编写。
def logout(request):
if not request.session.get('is_login', None):
# 如果本来就未登录,也就没有登出一说
return redirect("/index/")
request.session.flush()
# 或者使用下面的方法
# del request.session['is_login']
# del request.session['user_id']
# del request.session['user_name']
return redirect("/index/")
使用 flush() 方法清除数据比较安全,但是不能保存 session 中的私货
对于 HTML 文件进行改写
{% if request.session.is_login %}
<li><a href="#" rel="external nofollow" >当前在线:{{ request.session.user_name }}</a></li>
<li><a href="/logout/" rel="external nofollow" >登出</a></li>
{% else %}
<li><a href="/login/" rel="external nofollow" >登录</a></li>
<li><a href="/register/" rel="external nofollow" >注册</a></li>
{% endif %}
来源:https://blog.csdn.net/ins_s/article/details/79419455
0
投稿
猜你喜欢
- MySQL函数CONCAT、CONCAT_WS、GROUP_CONCAT1.concat()函数CONCAT 函数用于将两个字符串连接为一个
- 一、概念介绍嵴线图(ridgeline plot),用来展示同一维度的几个数据的分布情况,每一层嵴线(峰峦)都是一个直方图或者密度图,层层堆
- 说明1、如果数据集是高维度的,选择谱聚类是子空间的一种。2、如果数据量是中小型的,比如在100W条以内,K均值会是更好的选择;如果数据量超过
- 内容摘要:本文介绍了使用asp来JMail v4.3发信的大部分常用方法,包括邮件基本信息、身份验证、附件等。无需很多的修改就可以
- Jupyter Notebook默认不显示行号,可是当我们代码报错时,发现会显示自己多少行出现错误。eg:这时候我们总不能一行行去数吧,因此
- python 字符串切割 maxsplitmy_str.split(str1, maxsplit)str1 可以不写,默认是空白字符(&qu
- 动画效果如下:GIF看起来可能会有点卡wxml<view class="confirm bubble">确定
- eval() 和 exec() 函数都属于 Python 的内置函数,由于这两个函数在功能和用法方面都有相似之处,所以将它们放到一节进行介绍
- 人口普查人口数量变化图1 第七次人口普查不同省份总人口import pandas as pdfrom collections import
- 最近遇到这个函数,但查的中文博客里的解释貌似不是很到位,这里翻译一下stackoverflow上的回答并加上自己的理解。在pytorch中,
- 本文实例讲述了php测试kafka项目。分享给大家供大家参考,具体如下:概述Kafka是最初由Linkedin公司开发,是一个分布式、分区的
- 如何在第10000名来访者访问时显示中奖页面?看看下面的代码:< SCRIPT LANGUAGE=VBScript
- 偶写的几个ASP字符串处理函数,用于文章分页的小玩意函数名:StrLen作 用:取得字符串长度(汉字为2)参 
- 请按步骤进行,未进行前面的步骤时,请不要做后面的步骤,以免损坏你的数据库.一般不建议做第4,6两步,第4步不安全,有可能损坏数据库或丢失数据
- 前言:今天和大家分享自己总结的6个常用的Pandas数据处理代码,对于经常处理数据的coder最好熟练掌握。选取有空值的行在观察数据结构时,
- 一、定时器概述window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInter
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数
- c3p0是什么c3p0的出现,是为了大大提高应用程序和数据库之间访问效率的。它的特性:编码的简单易用连接的复用连接的管理说到c3p0,不得不
- 提高性能有如下方法1、Cython,用于合并python和c语言静态编译泛型2、IPython.parallel,用于在本地或者集群上并行执
- 笔者日积月累了许多精彩、实用的Web特效的制作,这些特效几乎都是比较常用的网页特效。现在我就把这些经过