1、request是什么?

简单来说,它就是flask的封装的一个对象,这个对象包含着前端请求所带的所有信息。既然说它是一个对象,那么它肯定是有一些熟悉,和方法的,下面就来介绍下request里的熟悉,方法

  1. request.form : 里面就是一些表单数据,就是form标签里传递过来的数据
  2. request.data : 请求体中的数据
  3. request.args : url中携带的数据,就是 ? 后面所携带的,比如 ?name=zhuchunyu
  4. request.cookies : 携带过来的cookie值
  5. request.headers : 请求头中的数据,以key:value的形式
  6. request.method : 请求的方法
  7. request.json : json格式的数据
  8. request.path : 请求的路径(不包含ip地址和端口)
  9. request.url : 请求的全路径(包括?后携带的参数)
  10. request.base_url : 请求的全路径(不包括?后携带的参数)
  11. request.url_root : 请求的IP地址和端口
  12. request.files : 上传的文件

解释下为什么request.data 是空的,form标签的数据也是放在请求体中的,它的打印效果就是这样,肯定就是把form标签所传递的数据,放在了request.form 中,并且在request.data 中删除了,这样避免了重复的数据。

下面写一个简单的文件上传的例子吧

from flask import Flask, request

app = Flask(__name__)

@app.route("/upload", methods=["POST"], endpoint="upload")
def upload():
"""文件上传功能"""
file_obj = request.files.get("file")
if file_obj:
# 获取文件的名字,包括后缀
file_name = file_obj.filename
with open(file_name, 'wb') as f:
for line in file_obj:
f.write(line)
return "success !!"
else:
return "faild !!" if __name__ == "__main__":
app.run(debug=True)

文件我就存放在当前执行文件的同一目录下,你可以自己更改目录位置

额额,还有就是我使用发请求的工具就是postman,很好的一款后端测试工具,这样就不必要在写前端页面的。对了,上面我写上传文件的函数其实还有一种写法。

@app.route("/upload", methods=["POST"], endpoint="upload")
def upload():
"""文件上传功能"""
file_obj = request.files.get("file")
if file_obj:
file_name = file_obj.filename
file_obj.save(file_name)
return "success !!"
else:
return "faild !!"

直接调用flask中文件对象的save方法,把文件名传递进去好了,它默认是保存在当前目录中,如果你想保存在其他目录的话,那么上面的file_name 你可以进行os.path.join

request 就先讲到这里,reuqets 还有上下文管理没写,后面再写

flask中的request的更多相关文章

  1. 第三篇 Flask 中的 request

    第三篇 Flask 中的 request   每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前 ...

  2. Flask中的request模板渲染Jinja以及Session

    Flask中的request与django相似介绍几个常用的以后用的时候直接查询即可 1.request from flask import request(用之前先引用,与django稍有不同) r ...

  3. Flask最强攻略 - 跟DragonFire学Flask - 第三篇 Flask 中的 request 之 先知道有这么个东西

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  4. 深入flask中的request

    缘起 在使用flask的时候一直比较纳闷request是什么原理,他是如何保证多线程情况下对不同请求参数的隔离的. 准备知识 在讲request之前首先需要先理解一下werkzeug.local中的几 ...

  5. flask中的request和response

    1.request 1.request的常用成员 1.scheme : 获取请求方案(协议) 2.method : 获取本期请求的请求方式(重点) 3.args : 获取使用get请求方式提交的数据 ...

  6. 4,Flask 中的 request

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  7. Flask 中的 request 之 先知道有这么个东西

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...

  8. 第三篇 Flask中的request

    每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的,下面我们来了解一下Flask的request中都有什么东西 from flask import request 1 ...

  9. flask中获取request的参数的方法

    request请求总体分为两类: 1.get请求 访问时会在地址栏直接显示参数不安全,且参数大小比较小. 2.post请求 参数不显示在地址栏,一般用户注册.登录都通过post请求完成. flask获 ...

随机推荐

  1. jquery/js不支持ie9以下版本的方法或属性

    1.jquery的trim()去除字符串两边的空格,在ie5~8中不支持此方法.若想替换字符串所有的空格看使用replace()正则替换: var date=" 2014-1 0-  15 ...

  2. [LeetCode]24. Swap Nodes in Pairs两两交换链表中的节点

    Given a linked list, swap every two adjacent nodes and return its head. Example: Given 1->2->3 ...

  3. Maven之依赖关系

    在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖.就是说,你跟开发Spring的大牛们平起平坐 ...

  4. 洛谷P1941 飞扬的小鸟(背包 dp)

    题意 题目链接 Sol 很显然的dp,设\(f[i][j]\)表示第\(i\)个位置,高度为\(j\)的最小步数 向上转移的时候是完全背包 向下转移判断一下就可以 #include<bits/s ...

  5. Word中划线的方法(五种)

    Word中划线的方法(五种): 1. 按CTRL+F9,在出现的黑底花括号内,如图输入内容, 最后按SHIFT+F9(或者右键菜单点切换域代码),以后可以反复按ALT+F9在代码与结果之间切换. 注: ...

  6. .NET开源工作流RoadFlow-表单设计-日期时间选择

    在表单中添加一个日期时间选择框: 选择范围:指定一个日期选择范围. 时间:是否允许选择时间.

  7. Java开发高性能网站需要关注的事

    转自:http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内 ...

  8. C语言实现一元多项式求积

    #include <stdio.h>#include <stdlib.h>#include <math.h>typedef struct Node{    int ...

  9. HTTP协议安全头部X-Content-Type-Options引入的问题

    前段时间测试MM反馈了一个问题,在富文本编辑器里上传的图片无法正常呈现.因为Jackie在本机的环境上没有观察类似的现象,而恰好那天测试环境的某个重要配项被改错了,于是Jackie想当然的归类为配置项 ...

  10. (一)svn介绍

    项目管理中的版本控制问题 通常软件开发由多人协作开发,如果对代码文件.文档等没有进行版本控制,将会出现很多问题: 备份多个版本,占用磁盘空间大 解决代码冲突困难 容易引发BUG 难于恢复至以前正确版本 ...