越过山丘

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

Flask源码剖析(16): 辅助

一. 辅助 Flask框架提供了很多辅助函数,stream_with_context/make_response/url_for等,为其他功能的实现提供了公共函数。 二. 代码 这些辅助函数的实现主要放在flask/helpers.py文件,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27...

Flask源码剖析(15): 命令行接口

一. 命令行接口 Flask提供了一个脚本,对flask程序上的Flask.cli所有实例的所有命令进行访问,以及一些内置的命令。 当然,还可以注册更多的命令。 二. 代码 关于命令行接口的所有代码都放在flask/cli.py文件中,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28...

Flask源码剖析(14): 测试

一. 测试 Flask提供的测试渠道是Werkzeug的Client来处理本地环境,未经测试的应用难于改进现有的代码。 二. 代码 Flask实现测试的代码存放于flask/testing.py文件中,如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34...

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)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。 当登录一个网站时,第一次需要输入账号密码,第二天要继续访问此网站时...