某些 HTTP 代理不支持任意的 HTTP 方法或更新的 HTTP 方法(比如 PATCH)。
这种情况下,通过另一种完全违背协议的 HTTP 方法来“代理” HTTP 方法是可行的。
这个方法使客户端发出 HTTP POST 请求并设置 ...
AI君
3年前 (2019-03-27) 131℃
0喜欢
有时,您希望发送非常巨量的数据到客户端,远远超过您可以保存在内存中的量。
在您实时地产生这些数据时,如何才能直接把他发送给客户端,而不需要在文件
系统中中转呢?
答案是生成器和 Direct Response。
基本使用¶
下面是一个简单...
AI君
3年前 (2019-03-27) 129℃
1喜欢
Flask 的设计原则中有一条是响应对象被创建并在一条可能的回调链中传递,而在
这条回调链但中的任意一个回调,您都可以修改或者替换掉他们。当请求开始被
处理时,还没有响应对象,响应对象将在这一过程中,被某个视图函数或者系统
的其他组件按照...
AI君
3年前 (2019-03-27) 167℃
0喜欢
一个“页面图标”是浏览器在标签或书签中使用的图标,它可以给你的网站加上一个唯一
的标示,方便区别于其他网站。
那么如何给一个 Flask 应用添加一个页面图标呢?首先,显而易见的,需要一个图标。
图标应当是 16 X 16 像素的 ICO ...
AI君
3年前 (2019-03-27) 135℃
0喜欢
Flask 通常使用装饰器。装饰器简单易用,只要把 URL 放在相应的函数的前面就可以了。
但是这种方式有一个缺点:使用装饰器的代码必须预先导入,否则 Flask 就无法真正找到
你的函数。
当你必须快速导入应用时,这就会成为一个问题。在 ...
AI君
3年前 (2019-03-27) 164℃
0喜欢
现在使用文档型数据库来取代关系型数据库已越来越常见。本方案展示如何使用
MongoKit ,它是一个用于操作 MongoDB 的文档映射库。
本方案需要一个运行中的 MongoDB 服务器和已安装好的 MongoKit 库。
使用 Mong...
AI君
3年前 (2019-03-27) 143℃
0喜欢
Flask 有一个方便的 abort() 函数,它可以通过一个 HTTP 出错代码退出
一个请求。它还提供一个包含基本说明的出错页面,页面显示黑白的文本,很朴素。
用户可以根据错误代码或多或少知道发生了什么错误。
常见出错代码¶
以下出错...
AI君
3年前 (2019-03-27) 137℃
0喜欢
jQuery 是一个小型的 JavaScript 库,它通常被用来简化 DOM 和 JavaScript
操作。通过在服务器和客户端之间交换 JSON 数据是使得 Web 应用动态化的完美方式。
JSON 本身是一个很清量级的数据传输格式,...
AI君
3年前 (2019-03-27) 137℃
0喜欢
Jinja 最为强大的地方在于他的模板继承功能,模板继承允许你创建一个基础的骨架模板,
这个模板包含您网站的通用元素,并且定义子模板可以重载的 blocks 。
听起来虽然复杂,但是其实非常基础。理解这个概念的最好方法就是开始一个例子。
...
AI君
3年前 (2019-03-27) 140℃
0喜欢
一个好的应用和用户界面都需要良好的反馈。如果用户得不到足够的反馈,那么应用最终
会被用户唾弃。 Flask 的闪现系统提供了一个良好的反馈方式。闪现系统的基本工作方式
是:在且只在下一个请求中访问上一个请求结束时记录的消息。一般我们结合布...
AI君
3年前 (2019-03-27) 141℃
0喜欢
当你必须处理浏览器提交的表单数据时,视图代码很快会变得难以阅读。有一些库可以
简化这个工作,其中之一便是 WTForms ,下面我们将介绍这个库。如果你必须处理
许多表单,那么应当尝试使用这个库。
如果要使用 WTForms ,那么首先要把...
AI君
3年前 (2019-03-27) 175℃
0喜欢
Python 有一个非常有趣的功能:函数装饰器。这个功能可以使网络应用干净整洁。 Flask
中的每个视图都是一个装饰器,它可以被注入额外的功能。你可以已经用过了
route() 装饰器。但是,你有可能需要使用你自己的装饰器。假设有
一个视...
AI君
3年前 (2019-03-27) 138℃
0喜欢
是的,这里要谈的是一个老问题:文件上传。文件上传的基本原理实际上很简单,基本上
是:
一个带有 enctype=multipart/form-data 的 <form> 标记,标记中含有
一个 <input type=...
AI君
3年前 (2019-03-27) 180℃
0喜欢
当你的应用变慢的时候,可以考虑加入缓存。至少这是最简单的加速方法。缓存有什么用?
假设有一个函数耗时较长,但是这个函数在五分钟前返回的结果还是正确的。那么我们就
可以考虑把这个函数的结果在缓存中存放一段时间。
Flask 本身不提供缓存,...
AI君
3年前 (2019-03-27) 178℃
0喜欢
许多人喜欢使用 SQLAlchemy 来访问数据库。建议在你的 Flask 应用中使用包来代替
模块,并把模型放入一个独立的模块中(参见 大型应用 )。虽然这
不是必须的,但是很有用。
有四种 SQLAlchemy 的常用方法,下面一一道...
AI君
3年前 (2019-03-27) 146℃
0喜欢
Fabric 是一个 Python 工具,与 Makefiles 类似,但是能够在远程服务器上执行
命令。如果与适当的 Python 包( 大型应用 )与优良的配置(
配置处理 )相结合那么 Fabric 将是在外部服务器上部署 Flas...
AI君
3年前 (2019-03-27) 181℃
0喜欢
在 Flask 中,通过使用特殊的 g 对象可以使用
before_request() 和 teardown_request()
在请求开始前打开数据库连接,在请求结束后关闭连接。
以下是一个在 Flask 中使用 SQLite 3 的例...
AI君
3年前 (2019-03-27) 144℃
0喜欢
distribute 的前身是 setuptools ,它是一个扩展库,通常用于分发 Python 库和
扩展。它的英文名称的就是“分发”的意思。它扩展了 Python 自带的一个基础模块安装
系统 distutils ,支持多种更复杂的...
AI君
3年前 (2019-03-27) 137℃
0喜欢
New in version 0.7.
Flask 0.7 引入了 URL 处理器,其作用是为你处理大量包含相同部分的 URL 。假设你有
许多 URL 都包含语言代码,但是又不想在每个函数中都重复处理这个语言代码,那么就可
可以使用 ...
AI君
3年前 (2019-03-27) 144℃
0喜欢
在Flask上层实现 RESTful APIs 是非常常见的。开发者碰到的第一件事情就是内置的异常对于 APIs
是表达性不足并且使用的内容格式 text/html 对于 API 使用者用处不大。
比 abort 更好的解决方案就是实现自...
AI君
3年前 (2019-03-27) 144℃
0喜欢