Flask权限认证(Flask-Principal)

Flask-Principal主要提供两种功能: 1、权限认证 2、用户信息管理 该模块主要由Identity, Needs, Permission, and the IdentityContext.组成。 - Identity代表用户,一般存储在session中; - Needs代表了一种角色,如需要管理员权限,需要验证等等; - Permission是接

阅读全文

Flask的session

session用来记录登录状态,一般基于cookie实现。 Flask的默认session利用了Werkzeug的SecureCookie,把信息做序列化后编码(base64),放到cookie里了。 flask的session是通过客户端的cookie实现的,不同于diango的服务器端实现,flask通过itsdangerous(一种签名算法,主要使用HMAC加密算法)将session

阅读全文

Flask的Blueprint原理

蓝图可以有多个子应用,每个子应用拥有自己的视图函数和URL规则,有自己的模板等等,它们之间相互不影响,这大大地方便了我们日常代码的编写和维护,也便于后续扩展功能。当我们想扩展功能时,只需要创建一个子应用即可。而这些子应用都属于同一个应用。 ##1、使用示例 1、创建蓝图对象 article = Blueprint('article',__name__) @art

阅读全文

Flask模板Jinja2引擎介绍

##一、Jinja2变量及函数 ###1、标准变量及函数 在Flask的Jinja2模板中自动引入了一些标准变量,如request,session,g,config,标准函数有url_for,get_flashed_messages。 get\_flashed\_messages函数会获取我们在view_func中定义的flash消息。 {% meassages=get

阅读全文

Flask缓存技术(Flask-Cache)

有的时候我们会多次浏览同一个页面,同一个资源,这就会多次去请求同样的资源,此时就出现了缓存,缓存省去了每次多余的资源消耗。 在Flask中,使用扩展模块Flask-Cache。 基本使用方法: app = Flask(__name__) cache = Cache(app) @app.route('/hello') @cache.cached(timeo

阅读全文

Flask模板引用原理机制

Flask使用的是Jinja模板,除此之外还有模板还有Flask-Mako,Flask-Genshi,但不常用。 Jinja有两种定界符。{% ... %}和{{ ... }}。前者用于执行像for循环或赋值等语句,后者向模板输出一个表达式的结果。 使用 extends 和 block实现模板的继承。 在Jinja2模板中可以使用条件语句(if else endif),for

阅读全文

Flask上下文

##一、应用上下文 ###1、app context的作用 Flask 的设计理念是允许在同一个进程中创建多个应用,因此一个应用对象对应着一个app 上下文,代码通过应用上下文会找到正确的应用。 不同的app上下文之间不能共享数据,不会在线程之间进行移动,因此可存储数据库配置及连接等信息。这时候就要理解Flask的LocalStack的概念。 ###2、Local介绍 L

阅读全文

Flask第三方插件扩展原理

flask这种轻量级的框架本身并没有包含我们需要的功能,因此必须通过扩展插件才可以。今天学习了FLask的扩展插件导入(import)原理。 通常我们import第三方插件时,如:flask.ext.principal import identity_loaded。 当执行该语句时,首先要执行flask/ext/__init__.py模块,该模块内函数如下: def s

阅读全文

Flask信号机制

Flask各模块之间通过信号signal进行通信,信号的存在使得各模块之间不需要进行互相调用,也就是所谓的解耦合。信号对于我们进行单元测试也是特别的重要。 信号和一些内置的装饰器比较类似,如request_started和before_request,虽然类似,但是他们工作方式完全不同。before_request是按顺序执行,并返回一个响应类;然而request_started信号仅仅是一

阅读全文

登录

Sign Up

Forgotten Password