文章目录
flask介绍
虚拟环境(重点)
- 独立的python环境
- 作用:可以避免同一个框架的多版本冲突
三个命令
-
创建虚拟环境 mkvirtualenv -p python3 env21
-
退出虚拟环境 deactivate
-
进入虚拟环境 workon env21
-
查看所有的虚拟环境 workon 双击tab
flask基本使用
第一个flask程序
安装第三方包 —> pip install flask==0.10.1
查看安装的所有包 ----> pip freeze
-
在web应用中,需要展示什么就return返回什么
-
定义路由:用于绑定URL和视图函数
debug(是否开启调试模式)的好处:
- 页面中显示python错误
- 更新代码后,自动重启服务器
host 绑定的IP
- 0.0.0.0 万能IP 可以接受外网/局域网的请求
路由
-
路径必须以路径分隔符开头
-
app.url_map保存了所有的路由规则(URL,支持的请求方式 试图函数名称)
-
postman web开发的调试工具 可以模拟请求,测试功能是否有问题
设置路由支持的请求方式
参数methods=[]
请求
request 上下文变量
- URL 获取本次请求的URL
- method 请求的方法
- headers 请求报文 (类字典对象)
- 获取header中的某个数据可以使用.get(), 如果键不存在不会报错
查询字符串
-
获取请求的查询字符串,一般用与GET数据
如:name = request.args.get(‘name’)
请求体
form 键值对数据
- 如form发送默认的POST请求(form也是一个类字典对象)
files 文件
获取文件
data 获取文本数据 如html,json
使用request.data进行接收
返回的是bytes类型 类字符串对象 保存的是二进制数据
响应
自定义响应对象
视图函数只可以返回str/bytes,而且会被flask内部包装为响应对象
需要自定义响应报文时,可以手动创建响应对象
返回json
json是一种数据交换格式,本质是字符串
jsonify会将字典转为json字符串,并且设置响应报文中content-type为application/json
重定向
从一个网络地址跳转到另一个网络地址 如:页面跳转 a href
- url_for可以获取视图函数的URL
自定义状态码
- 可以设置第二个返回值作为自定义的状态码
- 作用:方便开发时快速排错
异常处理
- flask中对 http错误 封装了异常捕获和抛出异常
状态保持
状态保持:记录用户访问信息的机制 如用户是否看过帮助信息,用户是否登录
cookie
-
特点:
- 将数据保存在客户端(用户的计算机中)
- 每次请求时,浏览器会自动将cookie数据发送给服务器
-
场景
- 保存一些不太重要的数据,可以减轻服务器的存储压力
-
示意图
-
cookie实现举例
-
如何删除cookie中保存的数据
-
cookie过期时间
- max-age
- ‘-1’:浏览器关闭时,cookie数据会被删除 max-age默认值为-1
- ‘0’: 直接删除cookie
- ‘正数’:max-age=5,表示5秒后cookie数据会被删除
- max-age
-
删除cookie
本质是将max-age设置为0
cookie细节
- 一旦保存了cookie,该网站的任意路由都可以获取到cookie
- 同源策略:浏览器只会将该网站自己的cookie数据发给服务器
- 前端也可以读写cookie
session
- 特点:将数据保存在服务器中(一般是服务器的数据库中)
- 场景:
- 一般适合保存重要/敏感的数据