1、请求参数
# 请求参数
客户端的请求参数一般存在于三个地方:
1.请求体
2.请求头
3.URL参数:
1).固定参数
2).查询字符串
序号 | 参数或信息 | 解释 |
---|---|---|
1 | 固定参数 | URL的组成部分, 不可缺失 |
2 | 查询字符串: args | 根据需求, 可有可无 |
3 | 表单数据: form | 提交form表单是传递的数据 |
4 | 文件上传: files | 用户向服务器上传的文件 |
5 | 请求头: headers | 请求头中携带的请求信息 |
6 | 请求方法: method | 请求所使用的的请求方法 |
7 | URL地址: url | 请求的URL地址 |
2、查询参数获取
args
:查询参数
(1).查询参数
查询参数在URL中以?与主路由进行分隔, 查询参数是以键值对形式出现的, 键与值使用"="连接, 如下所示:
/user/?userid=333
(2).查询参数的获取
request.args.get(‘key’)
request.args[‘key’]
from flask import Flask
app = Flask(__name__)
## 查询参数的获取
1.导入request对象
from flask import request
@app.route("/query")
def query():
# 获取所有的查询参数,并转换为dict类型
params = request.args.to_dict() # 把不可变字典类型转换为普通的dict类型
print(params)
print(type(params))
# 接收查询的参数
# name = request.args["name"] # 获取某一个参数
name = request.args.get("name") # 获取某一个参数
age = request.args.get("age")
return "当前名字是 %s ,年龄是 %s" % (name, age)
3、表单数据获取
form
: 表单数据
(1).表单数据
form表单数据, 一般应用与登录, 注册, 信息提交等. 配合前端的form表单使用, 一般form表单都是post请求, 注意路由中指定POST请求方法, 将表单数据封装在请求体中.
(2).表单数据获取方式
request.form.get(‘key’)
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/form", methods=["post"]) # 允许post访问
def form():
params = request.form.to_dict() # 把不可变字典类型转换为普通的dict类型
print(params)
print(type(params))
name = request.form.get("name")
age = request.form.get("age")
return "当前名字是 %s ,年龄是 %s" % (name, age)
4、json数据响应
# 返回json数据
# 返回json数据需要借助flask提供的jsonify来实现
from flask import Flask
from flask import jsonify
app = Flask(__name__)
@app.route("/return_json")
def return_json():
data = {
"name": "tongtong",
"age": "18"
}
return jsonify(data)
5、元组数据响应
# 元组数据响应
# 可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含2个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。
from flask import Flask
from flask import jsonify
app = Flask(__name__)
@app.route("/return_json")
def return_json():
return ("hello",400,{"aaa": "bbb"})
6、make_response()自定义响应
make_response()形式
flask可以返回make_response自定义的响应, make_response()内部需要传递返回的字符串, 其创建的对象还有headers属性用于设置响应头, status属性用于设置状态码
# make_response()自定义响应
from flask import make_response
@app.route("/return_obj")
def return_obj():
# 响应字符串
resp = make_response('自定义的响应字符串')
# 响应头键值对
resp.headers['author'] = 'jeremy'
# 状态码与状态码提示信息
resp.status = '404'
# 注意: 响应头键值对与状态码提示信息均为英文, 否则抛异常
return resp