1.request中包含了前端发送过来的所有数据 ,请求的 request 对象中保存了一次HTTP请求的一切信息。
通过request.from可以直接发送提取请求体中的表单格式数据,是一个类字典的对象
通过get方法只能拿到多个重名参数的第一个
2. reques常用的属性:
4.这里会用到Postman工具
下载:打开官网,https://www.getpostman.com
安装:http://www.cnblogs.com/mafly/p/postman.html
Postman的使用:https://blog.csdn.net/fxbin123/article/details/80428216
5.获取前端发过来的数据
1.对表单类型: request.form.get()
注意 : 如果get里面的参数是相同的,则只能获取到多个同名参数的第一个
可以通过request.form.getlist() # 获取到相同参数的所有数据,返回的是一个列表类型
2.对 url地址里面所带的查询字符串 request.args.get()
from flask import Flask, request
app = Flask(__name__)
"""
127.0.0.1:5000/index?city=shanxi&country=china
问号以后的称为 查询字符串(QueryString),有多个时,用 & 区分
对查询字符串用request.args.get()来获取响应的值
"""
'''接口 api: 即一个视图函数加上所对应的路由'''
@app.route("/index", methods=["GET", "POST"])
def index():
"""
request中包含了前端发送过来的所有数据
from和data是用来去提取请求体的数据
通过request.from可以直接发送提取请求体中的表单格式数据,是一个类字典的对象
通过get方法只能拿到多个重名参数的第一个
"""
name = request.form.get("name")
age = request.form.get("age")
city = request.args.get("city")
name_li = request.form.getlist("name")
"""如果请求体的数据不是表单格式的(如json格式,可以通过request.data获取)"""
print("request.data: %s"%request.data) # 打印出不是表单格式的数据
return "index page name=%s , age=%s , city=%s , name_li=%s"%(name,age,city,name_li)
if __name__ == '__main__':
app.run(debug=True)
6.运行程序 打开Postman, 选择POST-->x-www-form-urlencoded-->看看headers的类型是不是x-www-form-urlencoded类型
输入相应的键值对,然后点击Send,运行结果如图:
6. request属性里面有,method属性:,,记录请求使用的HTTP方法
if request.method == "GET":
"""GET请求对应逻辑"""
pass
elif request.method == "POST":
"""POST请求对应逻辑"""
pass
7.request中的files属性,,,记录请求上传的文件
已上传的文件存储在内存或是文件系统中一个临时的位置。你可以通过请求对象的 files 属性访问它们。
每个上传的文件都会存储在这个字典里。它表现近乎为一个标准的 Python file 对象,
但它还有一个 save() 方法,这个方法允许你把文件保存到服务器的文件系统上。
from flask import Flask, request
app = Flask(__name__)
'''因为是文件,所以只能是POST方式'''
@app.route("/upload", methods=["POST"])
def upload():
"""接受前端传送来的文件"""
file_obj = request.files.get("pic")
if file_obj is None:
# 表示没有发送文件
return "未上传文件"
'''
将文件保存到本地(即当前目录)
直接使用上传的文件对象保存
'''
file_obj.save('pic.jpg') # 和前端上传的文件类型要相同
return "上传成功"
# 将文件保存到本地(即当前目录) 普通的保存方法
# with open("./pic.jpg",'wb') as f:
# data = file_obj.read()
# f.write(data)
# return "上传成功"
if __name__ == '__main__':
app.run(debug=True)
把前端上传的数据保存后端,利用Postman工具-->Body选择form-data 类型-->设置键值对,类型为file,选择一张照片
注意照片的类型要保存图片的类型一致,
然后运行上面的程序,成功显示上传成功,然后到后端,即当前的py文件所在的
目录就有前端上传的图片
如果你要把文件按客户端提供的文件名存储在服务器上,那么请把它传递给 Werkzeug 提供的 secure_filename() 函数:
名称就可以设置为: secure_filename(file.filename)) # file获取到的前端的文件
8.对于其他的类型,可以参考上图中的request常用属性,,,注意返回的类型