session登录状态保持html,Flask使用Session和上下文处理器保持登录状态
(1)Flask如何实现用户登录后注销、用户登录后权限不同,页面不一样的功能呢?
我们可以使用session来保存用户登录的这个状态,当登录成功的时候,将当前登录的username存入session,并设置session为permanent属性为True(这样下次打开浏览器仍然是登录的状态),这一步很简单,login函数修改如下:
#登录
@app.route('/login/',methods=['POST','GET'])
def login():
if request.method=='GET':
return render_template('login.html')
else:
telephone=request.form.get('telephone')
print(telephone)
password=request.form.get('password')
print(password)
user=User.query.filter(User.telephone==telephone,User.password==password).first()
print(user)
if user:
session['username']=user.username
session.permanent=True
return render_template('index.html')
else:
return u'用户名或者密码错误'
这个时候只是将当前的用户名存入到session中了,并不能让前端导航条上的注册改变为用户名,这个时候需要使用上下文处理器来传递参数,使用@app.context_processor,把当前登录的用户名传递给html:
@app.context_processor
def my_context_processor():
user=session.get('username')
if user:
return {'login_user':user}
return {}
然后在base.html中修改原来的登录和注册部分如下:
{% if login_user %}
你好,{{ login_user }}注销
{% else %}
注册登录
{% endif %}
此时登录成功后就变成下面这样了:
上面的代码,我们把注销关联到了logout视图函数,在这个函数里使用session.clear()清除session中的内容。
#登出
@app.route('/logout/',methods=['POST','GET'])
def logout():
session.clear()
return render_template('index.html')
整体的前端:
session登录状态保持html,Flask使用Session和上下文处理器保持登录状态相关推荐
- 【python】Flask之session使用
一.session机制 1.1 session的作用 由于http协议是一个无状态的协议,但网站基本上有登录使用的功能,这要求有状态管理,而session机制实现的就是这个功能 session基于co ...
- 单点登录与权限管理本质:session和cookie介绍
本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...
- python客户端修改session_python中flask的Session设置的方法介绍
本篇文章给大家带来的内容是关于python中flask的Session设置的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 什么是Session? cookie: 客户端浏览 ...
- Flask的session使用
由于http是无状态保存的协议,session可以看作不同请求之间保存数据的一种机制.flask的session是基于cookie的会话保持. 流程 当客户端进行第一次请求的时候,客户端的HTTP r ...
- http(请求方法,状态码,Cookie与Session)
文章目录 1.http中常见的Header(KV结构) 2.http请求方法 2.1请求方法 2.2 telnet 2.3网页根目录 2.3.1概念 2.3.2构建一个首页 2.4GET与POST方法 ...
- Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)...
在本文主要介绍如何来开发一个Stateless Session Bean,并在未安装WebLogic10的机器上访问Session Bean.开发EJB3 Stateless Session Bean ...
- java session 永不过期_Java Web Application使Session永不失效(利用cookie隐藏登录)
在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...
- Flask的状态保持和上下文管理
状态保持 因为 http 是一种无状态协议,浏览器请求服务器是无状态的. 无状态:指一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态原因:浏览器与服务器是 ...
- C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session
本文主要是毕业设计"个人电脑使用记录清除软件"系列系统应用文章中关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP关于Cookie\Session两个会话管理机制 ...
最新文章
- LeetCode简单题之区域和检索 - 数组不可变
- java绘图机器猫_用绘图语句画机器猫(初学 C 语言的同学必看)
- 2014-06-25nbsp;20:39
- python sklearn 梯度下降法_(四)梯度下降法及其python实现
- Java Currency getInstance()方法与示例
- C#实现较为实用的SQLhelper
- Postgres外部表示例
- 软件测试的定义与分类
- 集群环境下_Docker环境下秒建Redis集群,连SpringBoot也整上了!
- 漆桂林:多模态知识图谱种类及其应用
- HTML5学习总结(2)——header/nav/footer/article/section/aside
- java 模式匹配_Java 14 模式匹配,非常赞的一个新特性!
- Linux上层应用--git独奏
- 中职学校计算机课听课记录表,中职语文听课记录模板
- 2022年信息安全工程师考试知识点:计算机网络基本知识
- win10user文件夹迁移_win10用户文件夹迁移操作方法_win10怎么移动用户文件夹位置-win7之家...
- 解决wps缺少字体的问题
- 必读科普书籍科普三部曲《变化》《见微知著》《探索生命》
- 【你晓得伐】Solr的LIR是个什么东东
- Golang开发定时钉钉小机器人(基于gin+gorm)
热门文章
- 二分法以及random函数使用
- cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...
- Python逐块执行另一个Python程序中的代码观察运行过程
- 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统4
- enablefeignclients 注解_Spring Boot 中 @EnableXXX 注解的驱动逻辑
- java中while循环练习,java练习 七、循环语句 do……while循环语句
- PAT 1060 Are They Equal (25 分)
- python selenium翻页_Selenium翻页的实现方法实例
- 力扣26,删除重复项(JavaScript)
- 计算机科学在各专业领域中的应用,计算机科学在各专业领域中的应用