200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Flask框架(flask中的request对象 获取请求参数 保存上传的文件)

Flask框架(flask中的request对象 获取请求参数 保存上传的文件)

时间:2019-09-10 18:02:15

相关推荐

Flask框架(flask中的request对象 获取请求参数 保存上传的文件)

1.request中包含了前端发送过来的所有数据 ,请求的 request 对象中保存了一次HTTP请求的一切信息。

通过request.from可以直接发送提取请求体中的表单格式数据,是一个类字典的对象

通过get方法只能拿到多个重名参数的第一个

2. reques常用的属性:

4.这里会用到Postman工具

下载:打开官网,

安装:/mafly/p/postman.html

Postman的使用:/fxbin123/article/details/80428216

5.获取前端发过来的数据

1.对表单类型: request.form.get()

注意: 如果get里面的参数是相同的,则只能获取到多个同名参数的第一个

可以通过request.form.getlist() # 获取到相同参数的所有数据,返回的是一个列表类型

2.对 url地址里面所带的查询字符串 request.args.get()

from flask import Flask, requestapp = 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请求对应逻辑"""passelif request.method == "POST":"""POST请求对应逻辑"""pass

7.request中的files属性,,,记录请求上传的文件

已上传的文件存储在内存或是文件系统中一个临时的位置。你可以通过请求对象的 files 属性访问它们。

每个上传的文件都会存储在这个字典里。它表现近乎为一个标准的 Python file 对象,

但它还有一个save() 方法,这个方法允许你把文件保存到服务器的文件系统上。

from flask import Flask, requestapp = 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常用属性,,,注意返回的类型

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。