介绍
这篇文章主要介绍了瓶判断用户已经登录的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
瓶判断用户登录,主要思想就是通过会话中是否有指定的值来判定用户是否已经登录,登录及跳转到指定的页面否则跳转到登录界面进行登录。
首先写一个登录的试图函数:
def 登录(): ,,,if request.method ==, & # 39;得到# 39;: ,,,,,,,return render_template (& # 39; login.html& # 39;) ,,,user =, request.form.get(& # 39;用户# 39;),,, ,,,#形式的表单提交的数据request.form 类似于帖子请求request.args 类似django的request.get ,,,pwd =, request.form.get (& # 39; pwd # 39;) , ,,,if user ==& # 39; gallo # 39;,以及pwd==& # 39; 123 & # 39; ,,,,,,,会话(& # 39;用户# 39;],=,用户 ,,,,,,,return 重定向(& # 39;/回家# 39; ,,,return render_template (& # 39; login.html& # 39;,错误=坝没砦蟆?
方法一:
每次在函数内首先进行会话的判定:
@app.route(& # 39;/回家# 39; def 家居(): ,,,user =, session.get(& # 39;用户# 39;) ,,,if not 用户: ,,,,,,,return 重定向(& # 39;/登录# 39; ,,,return render_template (& # 39; home # 39;)
每次在函数内部最前面先进行会话的判定,满足则跳转到& # 39;/回家# 39;页面,否则跳转到& # 39;& # 39;/登录# 39;页面。
此方法的弊端:重复代码过多不利于开发。所以需要改进
<强>方法二:装饰器强>
通过装饰器来对其进行判定:
import functools def is_login(函数): ,,,@functools.warps(函数) ,,,def 内部(* args, * * kwargs): ,,,,,,,user =, session.get(& # 39;用户# 39;) ,,,,,,,if not 用户: ,,,,,,,,,,,return 重定向(& # 39;登录# 39;) ,,,,,,,return func (* args, * * kwargs) ,,,return 内在
我们可以看到此装饰器里面还有一个functools.waprs():的函数,这样做的目的是为了通过装饰器后不改变函数的性质,如果不加装饰器所有函数都名字会是内部函数,加上此函数可以不改变函数的性质。
所以加上装饰器的函数将会是:
@app.route(& # 39;/回家# 39; @is_login def 家居(): return render_template (& # 39; home # 39;)
这样就节省了很大的代码空间,但是只有更好没有最好,只有更简洁的代码没有最简洁的代码,所以出现了方法三。
<强>方法三:before_request: 强>
berfore_request的作用是在所有函数执行之前都应该先执行before_request函数。
所以只需要单独写一个函数来实现before_request的功能即可。
感谢你能够认真阅读完这篇文章,希望小编分享瓶判断用户已经登录的方法内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!瓶判断用户已经登录的方法