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中文翻译教程》是一本深入解析Flask框架的中文指南,专为已经熟悉Python基础并希望在Web开发领域进一步提升的开发者设计。Flask作为轻量级的Python Web框架,以其简洁、灵活的特点深受程序员喜爱...
在本项目中,我们利用Python的Flask框架和百度翻译API构建了一个在线翻译的应用。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,它提供了基本的路由、模板渲染以及HTTP请求处理功能,非常适合快速开发...
本文实例讲述了Flask框架Flask-Principal基本用法。分享给大家供大家参考,具体如下: Flask-Principal是Flask框架的一个扩展,主要主件是Identity,Needs,Permission和IdentityContext。 Identity:代表用户,从...
毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的...
Flask 是一个用Python编写的轻量级Web应用框架。它被称为“微框架”,但这并不意味着您的整个Web应用程序必须适合一个Python...对于希望学习和使用Flask进行Web开发的开发者来说,这份文档是学习Flask不可或缺的资料。
python课程设计——基于flask的短租平台实战项目,web全栈开发,sqlalchemy,适合个人学习,项目依赖: flask redis flask_session flask_wtf flask_script flask_migrate flask_sqlalchemy python课程设计——基于...
总结,本资料集“知了课堂Flask进阶和实战代码”涵盖了Flask框架的各个方面,从基础概念到高级特性,再到实际项目应用,是学习和提升Flask技能的宝贵资源。通过深入研究和实践,开发者能够熟练掌握Flask,为自己的...
本教程主要介绍了如何在Python的Flask框架中连接数据库,特别强调了这一技能是学习Flask框架的基础知识点。在实际开发中,数据库是保存和管理数据的重要组件,因此掌握Flask与数据库的交互对于开发Web应用至关重要。...
flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖...
基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+数据集.zip基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+数据集.zip基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+...
基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的...
**Python Flask基础教程** Python Flask 是一个轻量级的Web服务程序框架,它基于Werkzeug WSGI工具包和Jinja2模板引擎。在Windows操作系统下,使用Python 3.5版本,你可以通过简单的命令`pip install flask`来安装...
在本篇Flask学习笔记(10)中,我们将深入探讨Python Web开发框架Flask的高级用法和核心概念。Flask是一个轻量级、灵活的框架,它以简洁的API和可扩展性赢得了开发者们的喜爱。让我们一起探索Flask的魅力。 首先,`...
Flask官方文档中文版是为中文使用者提供的一个翻译版本,旨在帮助开发者更快地上手Flask,并通过这个框架进行Web开发。 Flask的设计哲学可以归纳为“微”(Micro)框架,这里的“微”并不意味着功能上的限制,而是...
在本篇Flask学习笔记(9)中,我们将深入探讨Flask框架的源码,重点关注其核心概念和组件,特别是与Python蓝图(Blueprint)相关的部分。Flask是Python中的一个轻量级Web服务程序,它以其简洁、灵活的特性深受开发者...
"旧版某东监控网站前后端,轻量级Flask网站,可用作学习Flask.zip" 这个标题表明我们有一个旧版本的监控网站项目,该网站的前后端架构基于Flask框架。Flask是Python中一个轻量级的Web应用框架,适合构建小型到中型的...
PyFladesk是基于Python的一种框架,它结合了流行的Web开发框架Flask与QtWebKit库,用于构建桌面应用程序。这个项目旨在为开发者提供一个简单、灵活且高效的途径,将Web应用转换为功能丰富的桌面应用,无需深入学习...
项目概述:基于Python Flask的在线成绩发布学习平台是一个开源项目,主要采用Python语言开发,同时融合了Shell脚本、HTML、CSS和JavaScript等技术。该项目包含22个文件,其中具体文件类型分布为:Shell脚本6个,...
Flask+Web开发实战的PDF资源提供了一个全面的学习路径,涵盖了从基础到高级的Flask应用开发。无论你是初学者还是有一定经验的开发者,这本书都能帮助你掌握Flask框架,并运用到实际项目中。通过实践,你将理解如何...