(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和上下文处理器保持登录状态相关推荐

  1. 【python】Flask之session使用

    一.session机制 1.1 session的作用 由于http协议是一个无状态的协议,但网站基本上有登录使用的功能,这要求有状态管理,而session机制实现的就是这个功能 session基于co ...

  2. 单点登录与权限管理本质:session和cookie介绍

    本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...

  3. python客户端修改session_python中flask的Session设置的方法介绍

    本篇文章给大家带来的内容是关于python中flask的Session设置的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 什么是Session? cookie: 客户端浏览 ...

  4. Flask的session使用

    由于http是无状态保存的协议,session可以看作不同请求之间保存数据的一种机制.flask的session是基于cookie的会话保持. 流程 当客户端进行第一次请求的时候,客户端的HTTP r ...

  5. 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方法 ...

  6. Weblogic10 + EJB3入门教程(1):编写第一个无状态会话Bean(Stateless Session Bean)...

    在本文主要介绍如何来开发一个Stateless Session Bean,并在未安装WebLogic10的机器上访问Session Bean.开发EJB3 Stateless Session Bean ...

  7. java session 永不过期_Java Web Application使Session永不失效(利用cookie隐藏登录)

    在做 Web Application 时,因为 Web Project 有 session 自动失效的问题,所以如何让用户登录一次系统就能长时间运行三个月,就是个问题. 后来,看到 session 失 ...

  8. Flask的状态保持和上下文管理

    状态保持 因为 http 是一种无状态协议,浏览器请求服务器是无状态的. 无状态:指一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态原因:浏览器与服务器是 ...

  9. C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session

    本文主要是毕业设计"个人电脑使用记录清除软件"系列系统应用文章中关于Cookie方面的知识,主要从介绍Cookie的基础知识和PHP关于Cookie\Session两个会话管理机制 ...

最新文章

  1. LeetCode简单题之区域和检索 - 数组不可变
  2. java绘图机器猫_用绘图语句画机器猫(初学 C 语言的同学必看)
  3. 2014-06-25nbsp;20:39
  4. python sklearn 梯度下降法_(四)梯度下降法及其python实现
  5. Java Currency getInstance()方法与示例
  6. C#实现较为实用的SQLhelper
  7. Postgres外部表示例
  8. 软件测试的定义与分类
  9. 集群环境下_Docker环境下秒建Redis集群,连SpringBoot也整上了!
  10. 漆桂林:多模态知识图谱种类及其应用
  11. HTML5学习总结(2)——header/nav/footer/article/section/aside
  12. java 模式匹配_Java 14 模式匹配,非常赞的一个新特性!
  13. Linux上层应用--git独奏
  14. 中职学校计算机课听课记录表,中职语文听课记录模板
  15. 2022年信息安全工程师考试知识点:计算机网络基本知识
  16. win10user文件夹迁移_win10用户文件夹迁移操作方法_win10怎么移动用户文件夹位置-win7之家...
  17. 解决wps缺少字体的问题
  18. 必读科普书籍科普三部曲《变化》《见微知著》《探索生命》
  19. 【你晓得伐】Solr的LIR是个什么东东
  20. Golang开发定时钉钉小机器人(基于gin+gorm)

热门文章

  1. 二分法以及random函数使用
  2. cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...
  3. Python逐块执行另一个Python程序中的代码观察运行过程
  4. 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统4
  5. enablefeignclients 注解_Spring Boot 中 @EnableXXX 注解的驱动逻辑
  6. java中while循环练习,java练习 七、循环语句 do……while循环语句
  7. PAT 1060 Are They Equal (25 分)
  8. python selenium翻页_Selenium翻页的实现方法实例
  9. 力扣26,删除重复项(JavaScript)
  10. 计算机科学在各专业领域中的应用,计算机科学在各专业领域中的应用