Flask-请求与响应
2019-05-06 本文已影响0人
遇明不散
请求与响应
请求对象
在 Flask 中,请求信息被封装到 request
对象中
request常用属性
-
scheme
: 获取请求方案(协议) -
method
: 获取本次请求的请求方式 -
request.args
: 获取使用get请求方式提交的数据 -
request.form
: 获取使用post请求方式提交的数据 -
request.values
: 获取GET和POST请求方式提交的数据(GET和POST通用) -
request.cookies
: 获取cookies中的信息 -
request.headers
: 获取请求消息头的信息 -
request.path
: 获取请求的url地址 -
request.files
: 获取用户上传的文件 -
request.full_path
: 获取请求的完整路径 -
request.url
: 获取访问地址
获取请求提交的数据
- get 请求方式
-
get
请求的数据是放在QueryString
中的 -
request.args
封装的就是get
请求的数据,类型为字典
-
# 获取 name 对应的值
request.args['name']
request.args.get('name')
# 获取 name_list 列表数据
request.args.getlist('name_list')
- post 请求方式
-
post
请求的数据是放在form
中的 -
request.form
封装的就是post
请求的数据,类型为 字典
-
# 获取 name 对应的值
request.form['name']
request.form.get('name')
# 获取name_list列表数据
request.form.getlist('name_list')
响应对象
响应对象其实就是要响应给客户端的内容,可以是普通字符串、模板或者是重定向
@app.route('/')
def index():
# return "Hello World"
# return render_template('xxx.html')
# 以上两种行为,本质上响应回去的都是字符串
构建响应对象,再响应给客户端
- 不是直接响应字符串,而是响应对象。响应对象可以包含响应的字符串,同时也可以实现其他的响应操作
- 在 flask 中,使用
make_response()
构建响应对象
resp = make_response('响应内容')
resp = make_response(render_template('xxx.html'))
# 实现其他的响应操作,如:添加cookies,...
return resp
重定向
由服务器端通知客户端重新向新的地址发送请求
from flask import redirect
# ... ...
resp = redirect('重定向地址')
return resp
文件上传
- 提交方式必须为
post
-
enctype
属性必须设置为multipart/form-data
- 大量数据上传的时候(如:超大文件),就不能使用网页上传了(主要是由于http协议不支持),需要使用单独的上传工具(C/S版的)
服务器端
# 通过 request.files 获取上传的文件
f = request.files['文件框name属性值']
# 通过 f.save(保存路径) 将文件保存到指定目录处
# 通过 f.filename 获取文件的名称
filename = f.filename
f.save('static/'+filename)