Flask all in one

| 分类 PYTHON  | 标签 python  flask 

Flask URL 变量规则

通过把 URL 的一部分标记为 <converter:variable_name> 就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。

转换器类型:

转换器 说明
string (缺省值) 接受任何不包含斜杠的文本
int 接受正整数
float 接受正浮点数
path 类似 string ,但可以包含斜杠
uuid 接受 UUID 字符串

请求与响应的相关函数

url_for()

url_for()函数用于构建指定函数的 URL。它把函数名称作为第一个 参数。它可以接受任意个关键字参数,每个关键字参数对应 URL 中的变量。未知变量将添加到 URL 中作为查询参数。

redirect() / abort()

使用 redirect() 函数可以重定向。使用 abort() 可以更早退出请求,并返回错误代码

request 全局对象与 Flask 线程对象

在 Flask 中由全局对象 request 来提供请求信息。

设想现在处于处理线程的环境中。一个请求进来了,服务器决定生成一个新线程(或者叫其他什么名称的东西,这个下层的东西能够处理包括线程在内的并发系统)。当 Flask 开始其内部请求处理时会把当前线程作为活动环境,并把当前应用和 WSGI 环境绑定到 这个环境(线程)。它以一种聪明的方式使得一个应用可以在不中断的情况下调用另一个 应用。

某些对象在 Flask 中是全局对象,但不是通常意义下的全局对象。这些对象实际上是特定环境下本地对象的代理。

Flask 内部使用本地线程对象,这样就不必在同一 个请求中因为线程安全的原因,而函数之间传递对象。这种实现方法是非常便利的, 但是当用于依赖注入或者当尝试重用使用了与请求挂钩的值的代码时,需要一个合法的环境。 Flask 项目对于本地线程是直言不讳的,没有一点隐藏的意思,并且在使用本地线程时在代码中进行了标注和说明。

request 请求对象

属性 操作
method 可以操作当前请求方法
form 处理表单数据
args 处理 URL 参数,例如:?key=value
files 访问上传的文件,每个上传的文件都储存在这个字典型属性中。这个属性基本和标准 Python file 对象一样,另外多出一个把上传文件保存到服务器的文件系统中的 save() 方法。
cookies 包含了客户端传输的所有 cookies 的字典

Flask 的装饰器

装饰器 用途
@app.route() 访问路由
@app.errorhandler 根据 HTTP 状态码,定制出错页面
   

上一篇     下一篇