5.请求和响应
5.1 请求
request对象封装解析了请求报文中的数据,其大部分功能是由依赖包werkzeug完成的,并且每个request对象都是线程隔离的,保证了数据的安全性。
request对象的属性
1.request.method
请求方式:GET POST
2.request.args
request.args :get参数字典
request.args.get(键) : 获取字典中键的值
request.args.getlist(键) : 获取字典中键的值,得到一个列表
3.request.form
request.form : 获取参数字典
request.form.get(键) : 获取字典中键的值
4.request.cookies
一个包含所有随请求提交的cookies的字典
5.request.headers
一个Werkzeug的EnvironHeaders对象,包含首部字段,可以以字典的形式操作
6.request.path
base_url
7.request.files
MultiDict包含所有上传文件的对象。每个键files都是来自的名称 。每个值都是一个Werkzeug 对象
flask.request.files :接收文件字典
flask.request.files.get(键) : 获取文件字典中的内容
保存文件到本地,方式一 :
文件对象 = flask.request.files.get(键)
文件对象.save(保存路径)
保存文件到地址,方式二
with open(路径,'wb') as f:
内容 = 文件对象.read()
f.write(内容)
文件的名字与大小
文件对象.name
文件对象.content_length
5.2 响应
可以响应多种内容,方式如下:
1.字符串
return 'index'
2.模板
return render_template('index.html', n1=123)
3.重定向
return redirect('/index')
4.json
方式1
return json.jums({})
方式2
from flask import Flask, jsonify
return jsonfy({})
5.make_response
构造make_response对象可以设置cookie,响应头,状态码等
response = make_response(render_template('index.html'), 200)
response.set_cookie("username", "cys")
response.headers['X-someting'] = 'A value'
response.delete_cookie('username')
return response