旅者行歌

不要虚掷你的黄金时代,不要去倾听枯燥乏味的东西,不要设法挽留无望的失败,不要把你的生命献给无知、平庸和低俗。

Flask源码剖析(13): 扩展

一. 扩展 Flask通常需要一些第三方库来工作,这些第三库通常可以分离出来。 二. 代码 关于载入扩展的代码存放于flask/ext/__init__.py和flask/exthook.py文件中,分别看看这两个文件 flask/ext/__init__.py ```python -- coding: utf-8 -- def setup(): from ...

Flask源码剖析(12): 配置

一. 配置 应用程序需要某种形式的配置,可能会需要根据应用环境更改不同的设置。 Flask被设计为需要配置来启动应用。 有一个配置对象用来维持加载的配置值:Flask对象的config属性。 二. 代码 config属性主要是在flask/config.py文件中定义的,来看看。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2...

Flask源码剖析(11): 模板

一. 模板 Flask默认使用Jinja2作为模板引擎,当然也可以选择使用其他模板引擎。 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分, 具体值只在收到具体的请求后,通过上下文才能知道。 模板引擎实现对模板的渲染,就是根据上下文,对模板中的占位变量,用真实值替换,形成最终的响应文件。 二. 代码 Flask连接Jinja2模板引擎的代码放在flask/templating...

Flask源码剖析(10): 视图

一. 视图 之前实现的程序都是基于函数通用视图,这里说的视图指的是Flask提供的视图类,这就是即插视图。 灵感来自Django的基于类而不是函数的通用视图。 其主要目的是让你可以对已实现的部分进行替换,并且这个方式可以定制即插视图。 – 即插视图 二. 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

Flask源码剖析(9): json解析

一. 什么是json JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。 它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。...

Flask源码剖析(8): 信号

一. 含义 什么是信号?信号通过发送发生在核心框架的其它地方或 Flask 扩展的动作时的通知来帮助你解耦应用。简而言之,信号允许特定的发送端通知订阅者发生了什么。 来自于Flask文档:信号 二. 信号 Flask的关于信号的逻辑主要是放在signals.py文件中,先看看代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20...

Flask源码剖析(7): session

一. 含义 HTTP是无状态协议,当服务需要记录用户的状态时,就需要一种机制来识别具体的某个用户。 Session和Cookie就是解决这个问题所提出的两个机制。 二. 场景 Cookie Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。 当登录一个网站时,第一次需要输入账号密码,第二天要继续访问此网站时...

Flask源码剖析(6): 响应

一. 含义 与Request类相对应,Flask框架使用Response类对HTTP请求的响应。 平时我们不会跟response直接打交道,Flask会自动生成响应返回到客户端,只需要关注view的实现即可。 二. 响应 先来看看一个正常的response是什么格式,用简单应用实现的程序为例。 1 curl -i "http://127.0.0.1:5000/" 返回: 1 2 3 4 ...

Flask源码剖析(5): 请求

一. 含义 先来看一下request的定义: 1 2 3 4 5 6 7 8 def _lookup_req_object(name): top = _request_ctx_stack.top if top is None: raise RuntimeError(_request_ctx_err_msg) return getattr(top, na...

Flask源码剖析(4): 上下文

一. 概念 软件工程中,上下文是一种属性的有序序列,它们给驻留在环境内的对象定义了环境。在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活、安全性等等。 在计算机技术中,相对于进程而言,上下文就是进程执行的环境。具体来说就是各个变量和数据,包括所有的寄存器变量,进程打开的文件、内存信息等。–百度百科 每一段程序都有很多外部变量。只有像Add这种...