请求对象:
from flask import request
flask内部实现了后端服务管理前端传过来的请求数据,使用from flask import request导入
1.get 请求
request.args,得到的是ImmmutableMultiDict不可变字典,可以选择to_dict()转变为可变字典。
2.post 请求
request.form
"""
一个视图函数可以只有一个处理逻辑,也可以有多个处理逻辑
request.method: 获取前端的请求方式
request.args:获取前端的get请求的参数
"""
from flask import Flask, request
app = Flask(__name__)
@app.route('/projects', method=['POST', 'GET'])
def list_projects():
if request.method == "POST":
return 'post的处理逻辑,例如创建一个project'
elif request.method == 'GET':
return 'GET的处理逻辑,返回所有projects'
@app.route('/projects/', method=['GET', 'DELETE'])
def list_projects(p_id):
if request.method == "GET":
return f'get某一个{p_id}项目信息'
elif request.method == 'DELETE':
return f'删除某一个{p_id}信息'
一个视图函数中处理不同请求方法的好处:当我们前端根据url访问某个页面,例如页面中有form表单,填写表单后发送是post请求 ,此时有可能需要返回页面本身,有可能需要返回其他页面;如果仅仅是get请求,可以返回页面本身。
3.json 数据
request.json,获取到的是application/json
4.get_json()
可强制转换
5.file文件
request.files
其他数据:
1.values:
combinedMultiDict,内容上form或者args,可以使用values代替form合args.
2.cookie:
请求的cookies,类型:dict.
3.stream:
在可知的mimetype下,如果进来的表单数据无法解码,会没有任何改动地保存到一个.stream以供使用,很多时候当请求的数据转换为string时,使用data是最好的方式,这个stream只返回一次数据。
4.headers:
请求头,dict类型.
5.data:
包含了请求数据,并转换成字符串string,除非是一个flask无法处理的mimetype.
6.files:
MultiDict,带有通过POST或PUT请求上传的文件.
7.environ:
WSGI隐含的环境配置.
8.method:
请求方法
9.remote_addr:
远程ip,可以限制ip行为,如反爬虫.
10.user-agent:
提供反扒和恶意攻击。



