Flask上下文全局变量
current_app 程序上下文 当前激活程序的程序实例
g 程序上下文 处理请求时用做临时存储的对象。每次请求都会重设这个变量
request 请求上下文 请求对象,封装了客户端发出的 HTTP 请求中的内容
session 请求上下文 用户会话,用于存储请求之间须要“记住”的值的词典html
为了不在每一个视图函数中都使用重复的代码,
Flask 提供了注册通用函数的功能,注册的函数可在请求被分发到视图函数以前或以后调用。
请求钩子使用修饰器实现。Flask 支持如下 4 种钩子。
before_first_request • : 注册一个函数,在处理第一个请求以前运行。
before_request • : 注册一个函数,在每次请求以前运行。
after_request • : 注册一个函数,若是没有未处理的异常抛出,在每次请求以后运行。
teardown_request • : 注册一个函数,即便有未处理的异常抛出,也在每次请求以后运行。
在请求钩子函数和视图函数之间共享数据通常使用上下文全局变量 g 。例如, before_
request 处理程序能够从数据库中加载已登陆用户,并将其保存到 g.user 中。随后调用视
图函数时,视图函数再使用 g.user 获取用户正则表达式
Jinja2变量过滤器 Hello, {{ name|capitalize }}
过滤器名 说 明
safe 渲染值时不转义
capitalize 把值的首字母转换成大写,其余字母转换成小写
lower 把值转换成小写形式
upper 把值转换成大写形式
title 把值中每一个单词的首字母都转换成大写
trim 把值的首尾空格去掉
striptags 渲染以前把值中全部的 HTML 标签都删掉数据库
Flask-Bootstrap基模板中定义的块 bootstrap/base.html
块 名 说 明
doc 整个 HTML 文档
html_attribs<html> 标签的属性
html <html> 标签中的内容
head <head> 标签中的内容
title <title> 标签中的内容
metas 一组 <meta> 标签
styles 层叠样式表定义
body_attribs <body> 标签的属性
body <body> 标签中的内容
navbar 用户定义的导航条
content 用户定义的页面内容
scripts 文档底部的 JavaScript 声明bootstrap
super() 获取原来的内容api
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
@app.errorhandler(500)
def internal_server_error(e):
return render_template('500.html'), 500
return render_template('500.html'), 500安全
WTForms支持的HTML标准字段
字段类型 说 明
StringField 文本字段
TextAreaField 多行文本字段
PasswordField 密码文本字段
HiddenField 隐藏文本字段
DateField 文本字段,值为 datetime.date 格式
DateTimeField 文本字段,值为 datetime.datetime 格式
IntegerField 文本字段,值为整数
DecimalField 文本字段,值为 decimal.Decimal
FloatField 文本字段,值为浮点数
BooleanField 复选框,值为 True 和 False
RadioField 一组单选框
SelectField 下拉列表
SelectMultipleField 下拉列表,可选择多个值
FileField 文件上传字段
SubmitField 表单提交按钮
FormField 把表单做为字段嵌入另外一个表单
FieldList 一组指定类型的字段服务器
WTForms验证函数
验证函数 说 明
Email 验证电子邮件地址
EqualTo 比较两个字段的值;经常使用于要求输入两次密码进行确认的状况
IPAddress 验证 IPv4 网络地址
Length 验证输入字符串的长度
NumberRange 验证输入的值在数字范围内
Optional 无输入值时跳过其余验证函数
Required 确保字段中有数据
Regexp 使用正则表达式验证输入值
URL 验证 URL
AnyOf 确保输入值在可选值列表中
NoneOf 确保输入值不在可选值列表中网络
Flask-Bootstrap基模板中定义的块
块 名 说 明
doc 整个 HTML 文档
html_attribs <html>标签的属性
html <html> 标签中的内容
head <head> 标签中的内容
title <title> 标签中的内容
metas 一组 <meta> 标签
styles 层叠样式表定义
body_attribs <body> 标签的属性
body <body> 标签中的内容
navbar 用户定义的导航条
content 用户定义的页面内容
scripts 文档底部的 JavaScript 声明session
最经常使用的SQLAlchemy列类型
类型名 Python类型 说 明
Integer int 普通整数,通常是 32 位
SmallInteger int 取值范围小的整数,通常是 16 位
BigInteger int 或 long 不限制精度的整数
Float float 浮点数
Numeric decimal.Decimal 定点数
String str 变长字符串
Text str 变长字符串,对较长或不限长度的字符串作了优化
Unicode unicode 变长 Unicode 字符串
UnicodeText unicode 变长 Unicode 字符串,对较长或不限长度的字符串作了优化
Boolean bool 布尔值
Date datetime.date 日期
Time datetime.time 时间
DateTime datetime.datetime 日期和时间
Interval datetime.timedelta 时间间隔
Enum str 一组字符串
PickleType 任何 Python 对象 自动使用 Pickle 序列化
LargeBinary str 二进制文件app
最常使用的SQLAlchemy列选项
选项名 说 明
primary_key 若是设为 True ,这列就是表的主键
unique 若是设为 True ,这列不容许出现重复的值
index 若是设为 True ,为这列建立索引,提高查询效率
nullable 若是设为 True ,这列容许使用空值;若是设为 False ,这列不容许使用空值
default 为这列定义默认值
经常使用的SQLAlchemy关系选项
选项名 说 明
backref 在关系的另外一个模型中添加反向引用
primaryjoin 明确指定两个模型之间使用的联结条件。只在模棱两可的关系中须要指定
lazy 指定如何加载相关记录。可选值有 select (首次访问时按需加载)、 immediate (源对象加
载后就加载)、 joined (加载记录,但使用联结)、 subquery (当即加载,但使用子查询),
noload(永不加载)和 dynamic (不加载记录,但提供加载记录的查询)
uselist 若是设为 Fales ,不使用列表,而使用标量值
order_by 指定关系中记录的排序方式
secondary 指定多对多关系中关系表的名字
secondaryjoin SQLAlchemy 没法自行决定时,指定多对多关系中的二级联结条件
经常使用的SQLAlchemy查询过滤器
过滤器 说 明
filter() 把过滤器添加到原查询上,返回一个新查询
filter_by() 把等值过滤器添加到原查询上,返回一个新查询
limit() 使用指定的值限制原查询返回的结果数量,返回一个新查询
offset() 偏移原查询返回的结果,返回一个新查询
order_by() 根据指定条件对原查询结果进行排序,返回一个新查询
group_by() 根据指定条件对原查询结果进行分组,返回一个新查询
最常使用的SQLAlchemy查询执行函数
方 法 说 明
all() 以列表形式返回查询的全部结果
first() 返回查询的第一个结果,若是没有结果,则返回 None
first_or_404() 返回查询的第一个结果,若是没有结果,则终止请求,返回 404 错误响应
get() 返回指定主键对应的行,若是没有对应的行,则返回 None
get_or_404() 返回指定主键对应的行,若是没找到指定的主键,则终止请求,返回 404 错误响应
count() 返回查询结果的数量
paginate() 返回一个 Paginate 对象,它包含指定范围内的结果
Flask-Login要求实现的用户方法
方 法 说 明
is_authenticated() 若是用户已经登陆,必须返回 True ,不然返回 False
is_active() 若是容许用户登陆,必须返回 True ,不然返回 False 。若是要禁用帐户,能够返回 False
is_anonymous() 对普通用户必须返回 False
get_id() 必须返回用户的惟一标识符,使用 Unicode 编码字符串
Flask-Mail SMTP服务器的配置配 置 默认值 说 明MAIL_SERVER localhost 电子邮件服务器的主机名或 IP 地址MAIL_PORT 25 电子邮件服务器的端口MAIL_USE_TLS False 启用传输层安全(Transport Layer Security,TLS)协议MAIL_USE_SSL False 启用安全套接层(Secure Sockets Layer,SSL)协议MAIL_USERNAME None 邮件帐户的用户名MAIL_PASSWORD None 邮件帐户的密码