Flask框架(flask中的request对象,获取请求参数,保存上传的文件)
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, 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请求对应逻辑"""pass
elif 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常用属性,,,注意返回的类型
Flask框架(flask中的request对象,获取请求参数,保存上传的文件)相关推荐
- Servlet | HttpServletRequest接口、通过request接口获取请求参数
目录 一:HttpServletRequest接口 二:通过request接口获取请求参数 一:HttpServletRequest接口 (1)HttpServletRequest是一个接口,全限定名 ...
- postman发送post请求,用request.getParameter()获取请求参数
1.接口代码 @RequestMapping("notifyUrl") public void notifyUrl(HttpServletRequest request, Ht ...
- 示例Express中路由规则及获取请求参数
本次给大家分享一篇基于express中路由规则及获取请求参数的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. express中常见的路由规则 ...
- 【Servlet】request对象获取请求头数据和用户数据
request对象学习 /*** request对象学习:* 作用:request对象中封存了当前请求的所有请求信息* 使用:* 获取请求头数据* req.getMethod();//获取请求方式* ...
- 获取请求参数通用方式|| 中文乱码问题||请求转发
1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数 1. String getParameter(String name):根据参数名称获取参数值 use ...
- 通过request对象获取客户端请求信息
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- django-视图中的request对象的属性
本篇介绍的属性都是视图函数中request对象的 可以通过下面方式获取值 request.属性名 详情看说明: path 请求的页面完整路径 method 浏览器的请求方式 值为'POST' 或者 ' ...
- java中的request对象_java中request对象各种方法的使用实例分析
本文实例讲述了java中request对象各种方法的使用.分享给大家供大家参考,具体如下: request对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息.request对象是 ...
- django中的request对象详解
Request 我们知道当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并将 HttpRequest对象 作为第一个参数传入该函数. 我们来看一看这个HttpRequest对象有 ...
最新文章
- 面试问题-使用Java线程做数学运算
- Python:lambda表达式的两种应用场景
- 快速WinForm开发
- python语音命名规则_python语音变量命名规则
- CC2538相关资料
- LinkedHashMap转对象
- script-百度换肤效果
- 【POJ3889】Fractal Streets(分形图)
- 分类问题的label为啥必须是 one hot 形式?
- oracle structure,oracle memory structure
- 惠普打印机介质不匹配_HP打印机驱动安装失败的解决办法
- 二叉树线索化示意图_二叉树线索化
- (4)[Tensorflow]L2正则化和collection【tf.GraphKeys】
- Android小程序-涂鸦板
- 14015problem I 方案数
- 逃离美国,跨越8000公里远程办公,他开发了世界上最强的虚拟机
- 调用麦克风列阵进行录音
- 牛客网在线编程全部题目
- rrpp协议如何修改_【网安学术】基于NQA策略的RRPP优化机制
- 设置3389端口远程终端服务方案解析
热门文章
- java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
- linux安装autossh详细教程,在Linux下安装autossh的教程
- 《移动应用开发》作业——JavaScript
- 汇编语言——《子程序应用(数制转换)程序设计》实验报告
- Spring Security——org.springframework.security.oauth:spring-security-oauth2项目已过时解决方案
- Jupyter Notebook——设置远程服务器登陆
- Songs Compression
- semget创建文件_linux信号灯操作
- android清空frame,android – GLSurfaceView onDrawFrame清除行为
- Android属性动画 实战-视差动画