微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > 编程语言 > 脚本语言 >

[Python][flask][flask-login]关于flask-login中各种API使用

时间:2016-09-07 16:41  浏览:努力统计中...
本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系。 简介:Flask-Login 为 Flask 提供了用户会话管理。它处理了日常的登入,登出并且长时间记住用户的会话

本篇博文跟上一篇[Python][flask][flask-wtf]关于flask-wtf中API使用实例教程有莫大的关系。

 

简介:Flask-Login 为 Flask 提供了用户会话管理。它处理了日常的登入,登出并且长时间记住用户的会话。

        直白的讲,flask-login包为用户管理了涉及到用户登录相关的缓存(Session)管理。

 

Posted by Alima | cnblogs.

一.安装(Install)

PC环境:Windows 7,Python 3.5.2。

PS:此次配置环境阶段和上一篇博文中写的一致,如果看了上一篇博文,安装阶段可以直接跳过。

  • 创建wtfdemo虚拟运行环境

用控制台(管理员运行模式)进入(cd)到想要创建工程的路径下,创建wtfdemo文件夹。

mkdir wtfdemo

进入(cd)wtfdemo文件夹,创建Python虚拟运行环境。

virtualenv flaskr

出现如下字样,说明虚拟环境创建成功

PS:本次提供第二种创建Python虚拟运行环境的使用方法

virtualenv -p source_file\python.exe target_file

为什么提出第二种创建方法,你会发现,当你的Python Web程序开发多了以后,PC上难免安装了很多版本的Python运行环境。

举例:当PC上同时安装了Python2.7和Python3.5,运行virtualenv flaskr后,建立的Python虚拟运行环境是Python2.7版本的,但是我们的开发环境是Python3.5。

在控制台中输入一下指令,你就会发现问题。

virtualenv -h

出现下面图片显示,默认的virtualenv安装路径是Python2.7,也就是默认的安装的虚拟环境是Python2.7版本。

所以,在这种情况下,请指定你需要的Python版本,并建立虚拟运行环境。

  • 安装flask-wtf库文件

进入Python虚拟运行环境(在上一篇博文中写过),执行以下指令。

pip install flaskpip install flask-wtfpip install flask-login
pip install flask-sqlalchemy

出现如下图所示,说明安装成功。

flask安装成功。

flask-wtf安装成功。

flask-login安装成功。(本次使用flask-wtf库时需要辅助以该运行库)

flask-sqlalchemy安装成功。

至此,环境配置阶段结束。

 

二.flask-Login介绍

它会:

①将活跃用户的ID储存在缓存(Session)中,让登录和注销更加简单。
②让你对登入(或登出)的用户限制浏览不同的视图
③处理略棘手的“记住用户”功能
④帮助保护使用用户的缓存(Session),以免被恶意盗用
⑤可能与Flask-Principal或其他授权扩展,在以后的工作中进行整合

但是,它不会:

①强制让你使用一个特定的数据库或者其他的存储方法。你可以完全负责你的用户时如何加载的。
②限制你使用用户名和密码,OpenID或是其他的认证方法。
③处理“登入或登出”以外的权限
④处理用户注册或者账户恢复

总结,flask-Login包只管理用户登入登出的缓存(Session)管理,而不做过多的超出自己权限的功能。

 

三.flask-login下的API介绍

由于flask-login中的API比较少,在本文中,尽可能将所有的API功能介绍列在这里。

  • LoginManager
class flask_login.LoginManager(app=None, add_context_processor=True)

这个类是用来保存用户的登录状态的,也是flask-login包的主类。

官方:LoginManager的实例是“不”绑定到特定的应用程序的,所以你可以创建LoginManager对象在你的代码主体上,所以你可以创建应用程序在工厂函数中。

解析:我们首先看LoginManager类的构造函数

__init__(self, app=None, add_context_processor=True)

该构造函数提供了一个缺省的局部变量app,默认值为None.和上文说道的,为“不绑定到特定的应用程序”解释说明。也就是说,你可以直接定义LoginManager的实例,而不必去绑定到应用程序上才可以实例化。当你在代码主题中定义了app后,可以随时绑定到LoginManager上。

该构造函数初始化了一些列变量。

'''LoginManager构造函数
Blog: www.cnblogs.com/alima/Editor: Alima | cnblog
TAG:
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线------
  • 上一篇:没有了
  • 下一篇:没有了