线程是可单独管理的最小指令集
| 变量名 |
上下文 |
说明 |
| current_app |
程序上下文 |
当前激活程序的程序实例 |
| g |
程序上下文 |
处理请求时用作临时存储的对象。每次请求都会重设 |
| request |
请求上下文 |
请求对象,封装了客户端发出的http请求中的内容 |
| session |
请求上下文 |
用户会话,用于存储请求之间需要“记住”的值的字典 |
Flask 在分发请求之前激活(或推送)程序和请求上下文,请求处理完成后再将其删除。
HTTP请求方式
| 方法 |
描述 |
| GET |
请求页面,并返回页面内容 |
| HEAD |
类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
| POST |
大多用于提交表单或上传文件,数据包含在请求体中 |
常见的错误代码及错误原因
| 状态码 |
说明 |
详情 |
| 100 |
继续 |
请求者应当继续提出请求。服务器已经收到请求的部分内容,正在等待其余部分 |
| 101 |
切换协议 |
请求者已要求服务器切换协议,服务器已确认并准备切换 |
| 200 |
成功 |
服务器已成功处理了请求 |
| 201 |
已创建 |
请求成功并企鹅服务器创建了新的资源 |
| 202 |
已接受 |
服务器已接受请求,但尚未处理 |
| 203 |
非授权信息 |
服务器已成功处理了请求,但返回的信息可能来自另个源 |
| 204 |
无内容 |
服务器成功处理了请求,但没有返回任何内容 |
| 205 |
重置内容 |
服务器成功处理了请求,内容被重置 |
| 206 |
部分内容 |
服务器成功处理部分请求 |
| 300 |
多种选择 |
针对请求,服务器可执行多种操作 |
| 301 |
永久移动 |
请求的网页已永久移动到新位置,即永久重定向 |
| 302 |
临时移动 |
请求的页面暂时跳转到其他页面,即暂时重定向 |
| 303 |
查看其他位置 |
如果原来的请求是POST,重定向目标文档应该通过GET提取 |
| 304 |
未修改 |
此次请求返回的页面未修改,继续使用上次的资源 |
| 305 |
使用代理 |
请求者应该使用代理访问该网页 |
| 307 |
临时重定向 |
请求的资源临时从其他位置响应 |
| 400 |
错误请求 |
服务器无法解析该请求 |
| 401 |
未授权 |
请求没有进行身份验证或验证未通过 |
| 403 |
禁止访问 |
服务器拒绝此请求 |
| 404 |
未找到 |
服务器找不到请求的网页 |
| 405 |
方法禁用 |
服务器禁用了请求中指定的方法 |
| 406 |
不接受 |
无法使用请求的内容响应请求的网页 |
| 407 |
需要代理授权 |
请求者需要使用代理授权 |
| 408 |
请求超时 |
服务器请求超时 |
| 409 |
冲突 |
服务器在完成请求时发生冲突 |
| 410 |
已删除 |
请求的资源已永久删除 |
| 411 |
需要有效长度 |
服务器不接受不包含有效内容长度标头字段的请求 |
| 412 |
未满足前提条件 |
服务器未满足请求者在请求中设置的其中一个前提条件 |
| 413 |
请求实体过大 |
请求实体过大,超出服务器的处理能力 |
| 414 |
请求URI过长 |
请求网址过长,服务器无法处理 |
| 415 |
不支持类型 |
请求格式不被请求页面支持 |
| 416 |
请求范围不符 |
页面无法提供请求的范围 |
| 417 |
未满足期望值 |
服务器未满足期望请求标头字段的要求 |
| 500 |
服务器内部错误 |
服务器遇到错误,无法完成请求 |
| 501 |
未实现 |
服务器不具备完成请求的功能 |
| 502 |
错误网关 |
服务器作为网关或代理,从上游服务器收到无效响应 |
| 503 |
服务不可用 |
服务器目前无法使用 |
| 504 |
网管超时 |
服务器作为网关或代理,但是没有及时从上游服务器收到请求 |
| 505 |
HTTP版本不支持 |
服务器不支持请求中所用的HTTP协议版本 |
常用的匹配规则
| 模式 |
描述 |
| \w |
匹配字母、数字及下划线 |
| \W |
匹配不是字母、数字及下划线的字符 |
| \s |
匹配任意空白字符,等价于[\t\n\r\f] |
| \S |
匹配任意非空白字符 |
| \d |
匹配任意数字,等价于[0-9] |
| \D |
匹配任意非数字的字符 |
| \A |
匹配字符串开头 |
| \Z |
匹配字符串结尾,如果存在换行,只匹配到换行前的结束字符串 |
| \z |
匹配字符串结尾,如果存在换行,同时还会匹配换行符 |
| \G |
匹配最后匹配完成的位置 |
| \n |
匹配一个换行符 |
| \t |
匹配一个制表符 |
| ^ |
匹配一行字符串的开头 |
| $ |
匹配一行字符串的结尾 |
| . |
匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符 |
| […] |
用来表示一组字符,单独列出,比如[amk]匹配a、m或k |
| [^…] |
不在[]中的字符,比如[^abc]匹配除了a、b、c之外的字符 |
| * |
匹配0个或多个表达式 |
| + |
匹配1个或多个表达式 |
| ? |
匹配0个或1个前面的正则表达式定义的片段,非贪婪方式 |
| {n} |
精确匹配n个前面的表达式 |
| {n, m} |
匹配n到m次由前面正则表达式定义的片段,贪婪方式 |
| a|b |
匹配a或b |
| () |
匹配括号内的表达式,也表示一个组 |
Python中的正则修饰符
| 修饰符 |
描述 |
| re.I |
使匹配对大小写不敏感 |
| re.L |
做本地化识别(locale-aware)匹配 |
| re.M |
多行匹配,影响^和$ |
| re.S |
使.匹配包括换行符在内的所有字符 |
| re.U |
根据Unicode字符集解析字符。影响\w、\W、\b和\B |
| re.X |
该标志通过给予你更灵活的格式以便你将正则表达式写的更易于理解 |
在网页匹配中,常用re.S和re.I