Flask Principal
“I am that I am” “我就是我”
简介
Flask Priincipal提供了两种简单的服务,通常用这两种web应用中:
1.权限认证
2.用户信息管理
例如,一个权限认证机制采用 OAUTH,使用flask-oauth ,用户信息存储在关系数据库中。框架使用signal消息作为应用接口(松耦合)。
框架主要部分包含身份(Identity),需求(Needs),权限(Permission),和包含身份信息上下文环境(IdentityContext)
- Identity,标志一个用户,这个用户可能存储或者保存在多中地方,例如session中,每个请求都可以获取这个用户的权限信息。 Identity 是用户在系统中的标志,他包含了用户的访问权限。
- Needs 是一个细粒度访存取控制权限,他代表一个特殊的操作权限,如 “管理员角色”,“可以编辑博客帖子”。Needs 通常是一个tuple。Needs通常被设计为“角色”,“用户”等。例如:tuple (“role”、“admin”) 这个tuple表明了一个admin角色的权限。 Needs是权限列表(set),一个用户拥有一个访问控制权限列表,表明用户可以做那些操作权限。
- Permission用一个set表示,包含了对资源的访问控制。
-
IdentityContext 是包含了用户权限的上下文环境,可以昨晚context manager 或者 decorator使用。
Protecting access to resources(资源访问)
Flask-Principal的使用者可以容易的将用户的访问权限定义为 python 装饰器或者上下文管理器。例子:
from flask import Flask, Response
from flaskext.principal import Principal, Permission, RoleNeed
app = Flask(__name__)
# load the extension
principals = Principal(app)
# Create a permission with a single Need, in this case a RoleNeed. 创建一个简单 RoleNedd权限。
admin_permission = Permission(RoleNeed('admin'))
# protect a view with a principal for that need ()
@app.route('/admin')
@admin_permission.require()
def do_admin_index():
return Response('Only if you are an admin')
# this time protect with a context manager
@app.route('/articles')
def do_articles():
with admin_permission.require():
return Response('Only if you are admin')
分享到:
相关推荐
python+flask+百度翻译api实现在线翻译,可自行拓展,代码可以直接使用,推荐使用编辑工具vs2017
探索 Flask 是一本关于使用 Flask 开发 Web 应用程序的最佳实践和模式的书籍。这本书是 Flask 官方教程的一个有力的补充材料。适合进阶使用。
本文实例讲述了Flask框架Flask-Principal基本用法。分享给大家供大家参考,具体如下: Flask-Principal是Flask框架的一个扩展,主要主件是Identity,Needs,Permission和IdentityContext。 Identity:代表用户,从...
毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的...
python flask学习文档,仅用于学习交流
基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的...
python课程设计——基于flask的短租平台实战项目,web全栈开发,sqlalchemy,适合个人学习,项目依赖: flask redis flask_session flask_wtf flask_script flask_migrate flask_sqlalchemy python课程设计——基于...
Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask简单整理Flask...
Flask学习笔记(9)源码
Flask学习笔记(10)源码
学习flask,开发商品后台管理系统.zip
Python开发基于Flask的在线学习笔记练手项目流程实战_编程案例实例详解课程教程.pdf
2.3.1 用flash函数显示文字:服务端正在使用某某算法进行鸢尾花分类计算,此时服务端程序即时运行相应的机器学习算法 2.3.2 然后显示算法名称和运行算法程序得到的训练得分 2.3.3 下面再显示一张图片,图片是算法的...
旧版某东监控网站前后端,轻量级Flask网站,可用作学习Flask.zip
flask用来开发web前端的代码框架,使用python语言编写完成,ppt主要讲解flask的框架原理和路由相关的基础
主要介绍了flask 使用 flask_apscheduler 做定时循环任务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了Python的Flask框架与数据库连接的教程,是Flask框架学习当中的基本知识,需要的朋友可以参考下
一个基于基于flask和pandas的新闻分析平台, 用... 是学习flask的绝佳一手材料. 所有代码都已经过反复调试, 可以直接使用. 具体使用方式详见资源内readme.md文件. 另: 使用前务必请确保已经安装好flask!!! flask!!!
为学习 flask 开发的一个博客系统