`

flask学习 Flask Principal翻译(未完)

阅读更多

Flask Principal

“I am that I am”   “我就是我”

简介

Flask Priincipal提供了两种简单的服务,通常用这两种web应用中:

1.权限认证

2.用户信息管理


例如,一个权限认证机制采用 OAUTH,使用flask-oauth ,用户信息存储在关系数据库中。框架使用signal消息作为应用接口(松耦合)。


框架主要部分包含身份(Identity),需求(Needs),权限(Permission),和包含身份信息上下文环境(IdentityContext)

 

 

  1. Identity,标志一个用户,这个用户可能存储或者保存在多中地方,例如session中,每个请求都可以获取这个用户的权限信息。 Identity 是用户在系统中的标志,他包含了用户的访问权限。
  2. Needs 是一个细粒度访存取控制权限,他代表一个特殊的操作权限,如 “管理员角色”,“可以编辑博客帖子”。Needs 通常是一个tuple。Needs通常被设计为“角色”,“用户”等。例如:tuple (“role”、“admin”)  这个tuple表明了一个admin角色的权限。  Needs是权限列表(set),一个用户拥有一个访问控制权限列表,表明用户可以做那些操作权限。
  3. Permission用一个set表示,包含了对资源的访问控制。
  4. IdentityContext 是包含了用户权限的上下文环境,可以昨晚context manager 或者 decorator使用。
flask

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中文翻译教程

    《Python-探索Flask中文翻译教程》是一本深入解析Flask框架的中文指南,专为已经熟悉Python基础并希望在Web开发领域进一步提升的开发者设计。Flask作为轻量级的Python Web框架,以其简洁、灵活的特点深受程序员喜爱...

    python+flask+百度翻译api实现在线翻译

    在本项目中,我们利用Python的Flask框架和百度翻译API构建了一个在线翻译的应用。Flask是一个轻量级的Web服务器网关接口(WSGI)Web应用框架,它提供了基本的路由、模板渲染以及HTTP请求处理功能,非常适合快速开发...

    Flask框架Flask-Principal基本用法实例分析

    本文实例讲述了Flask框架Flask-Principal基本用法。分享给大家供大家参考,具体如下: Flask-Principal是Flask框架的一个扩展,主要主件是Identity,Needs,Permission和IdentityContext。 Identity:代表用户,从...

    毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip

    毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的web端三维模型重建系统源码.zip毕设项目-基于迁移学习flask的...

    pythonFlask 学习文档有用自取

    Flask 是一个用Python编写的轻量级Web应用框架。它被称为“微框架”,但这并不意味着您的整个Web应用程序必须适合一个Python...对于希望学习和使用Flask进行Web开发的开发者来说,这份文档是学习Flask不可或缺的资料。

    python课程设计-基于flask的短租平台实战项目,web全栈开发,sqlalchemy,适合个人学习

    python课程设计——基于flask的短租平台实战项目,web全栈开发,sqlalchemy,适合个人学习,项目依赖: flask redis flask_session flask_wtf flask_script flask_migrate flask_sqlalchemy python课程设计——基于...

    知了课堂Flask进阶和实战代码.zip

    总结,本资料集“知了课堂Flask进阶和实战代码”涵盖了Flask框架的各个方面,从基础概念到高级特性,再到实际项目应用,是学习和提升Flask技能的宝贵资源。通过深入研究和实践,开发者能够熟练掌握Flask,为自己的...

    Python的Flask框架与数据库连接的教程

    本教程主要介绍了如何在Python的Flask框架中连接数据库,特别强调了这一技能是学习Flask框架的基础知识点。在实际开发中,数据库是保存和管理数据的重要组件,因此掌握Flask与数据库的交互对于开发Web应用至关重要。...

    flask及依赖项安装文件

    flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖项安装文件flask及依赖...

    基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+数据集.zip

    基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+数据集.zip基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+数据集.zip基于yolov5+flask实现深度学习的工业缺陷检测钢材缺陷检测源码+...

    基于Flask的课堂扫脸考勤签到系统

    基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的课堂扫脸考勤签到系统基于Flask的...

    PythonFlask基础教程(入门).pdf

    **Python Flask基础教程** Python Flask 是一个轻量级的Web服务程序框架,它基于Werkzeug WSGI工具包和Jinja2模板引擎。在Windows操作系统下,使用Python 3.5版本,你可以通过简单的命令`pip install flask`来安装...

    Flask学习笔记(10)源码

    在本篇Flask学习笔记(10)中,我们将深入探讨Python Web开发框架Flask的高级用法和核心概念。Flask是一个轻量级、灵活的框架,它以简洁的API和可扩展性赢得了开发者们的喜爱。让我们一起探索Flask的魅力。 首先,`...

    Flask官方文档中文版

    Flask官方文档中文版是为中文使用者提供的一个翻译版本,旨在帮助开发者更快地上手Flask,并通过这个框架进行Web开发。 Flask的设计哲学可以归纳为“微”(Micro)框架,这里的“微”并不意味着功能上的限制,而是...

    Flask学习笔记(9)源码

    在本篇Flask学习笔记(9)中,我们将深入探讨Flask框架的源码,重点关注其核心概念和组件,特别是与Python蓝图(Blueprint)相关的部分。Flask是Python中的一个轻量级Web服务程序,它以其简洁、灵活的特性深受开发者...

    旧版某东监控网站前后端,轻量级Flask网站,可用作学习Flask.zip

    "旧版某东监控网站前后端,轻量级Flask网站,可用作学习Flask.zip" 这个标题表明我们有一个旧版本的监控网站项目,该网站的前后端架构基于Flask框架。Flask是Python中一个轻量级的Web应用框架,适合构建小型到中型的...

    Python-PyFladesk使用Flask和QtWebKit创建桌面应用程序

    PyFladesk是基于Python的一种框架,它结合了流行的Web开发框架Flask与QtWebKit库,用于构建桌面应用程序。这个项目旨在为开发者提供一个简单、灵活且高效的途径,将Web应用转换为功能丰富的桌面应用,无需深入学习...

    基于Python Flask的在线成绩发布学习平台开源项目

    项目概述:基于Python Flask的在线成绩发布学习平台是一个开源项目,主要采用Python语言开发,同时融合了Shell脚本、HTML、CSS和JavaScript等技术。该项目包含22个文件,其中具体文件类型分布为:Shell脚本6个,...

    Flask+Web开发实战,flaskweb开发实战pdf,Python

    Flask+Web开发实战的PDF资源提供了一个全面的学习路径,涵盖了从基础到高级的Flask应用开发。无论你是初学者还是有一定经验的开发者,这本书都能帮助你掌握Flask框架,并运用到实际项目中。通过实践,你将理解如何...

Global site tag (gtag.js) - Google Analytics