原文链接: https://blog.csdn.net/u012163234/article/details/53116652
  

前言

在进行Flask开发中,前端需要发送不同的请求及各种带参数的方式,比如GET方法在URL后面带参数和POST在BODY带参数,有时候又是POST的表单提交方式,这个时候就需要从request提取参数。这篇文章是总结如何使用request

关于request

在Flask的官方文档中是这样介绍request的:

对于 Web 应用,与客户端发送给服务器的数据交互至关重要。在 Flask 中由全局的 request 对象来提供这些信息。

从Flask模块导入request

from flask import request

request的属性

下面是request可使用的属性,其中黑体是比较常用的。

  • form 
    一个从POST和PUT请求解析的 MultiDict(一键多值字典)。

  • args 
    MultiDict,要操作 URL (如 ?key=value )中提交的参数可以使用 args 属性:

searchword = request.args.get('key', '')
  • values 
    CombinedMultiDict,内容是formargs。 
    可以使用values替代form和args。

  • cookies 
    顾名思义,请求的cookies,类型是dict。

  • stream 
    在可知的mimetype下,如果进来的表单数据无法解码,会没有任何改动的保存到这个·stream·以供使用。很多时候,当请求的数据转换为string时,使用data是最好的方式。这个stream只返回数据一次。

  • headers 
    请求头,字典类型。

  • data 
    包含了请求的数据,并转换为字符串,除非是一个Flask无法处理的mimetype。

  • files 
    MultiDict,带有通过POST或PUT请求上传的文件。

  • environ 
    WSGI隐含的环境配置。

  • method 
    请求方法,比如POST、GET。

  • path

  • script_root
  • url
  • base_url
  • url_root 
    如果用户请求如下URL: 
    http://www.example.com/myapplication/page.html?x=y
    以上的参数内容如下:
名称 内容
path /page.html
script_root /myapplication
base_url http://www.example.com/myapplication/page.html
url http://www.example.com/myapplication/page.html?x=y
url_root http://www.example.com/myapplication/
  • is_xhr 
    如果请求是一个来自JavaScript XMLHttpRequest的触发,则返回True,这个只工作在支持X-Requested-With头的库并且设置了XMLHttpRequest

  • blurprint 
    蓝本名字。

  • endpoint 
    endpoint匹配请求,这个与view_args相结合,可是用于重构相同或修改URL。当匹配的时候发生异常,会返回None。

  • get_json(force=False, silent=False, cache=True)

  • json 
    如果mimetypeapplication/json,这个参数将会解析JSON数据,如果不是则返回None。 
    可以使用这个替代get_json()方法。

  • max_content_length 
    只读,返回MAX_CONTENT_LENGTH的配置键。

  • module 
    如果请求是发送到一个实际的模块,则该参数返回当前模块的名称。这是弃用的功能,使用blueprints替代。

  • on_json_loading_failed(e)
  • routing_exception = None 
    如果匹配URL失败,这个异常将会/已经抛出作为请求处理的一部分。这通常用于NotFound异常或类似的情况。

  • url_rule = None 
    内部规则匹配请求的URL。这可用于在URL之前/之后检查方法是否允许(request.url_rule.methods) 等等。 
    默认情况下,在处理请求函数中写下 
    print('request.url_rule.methods', request.url_rule.methods)
    会打印:

    request.url_rule.methods {‘GET’, ‘OPTIONS’, ‘HEAD’}

  • view_args = None 
    一个匹配请求的view参数的字典,当匹配的时候发生异常,会返回None。

更多api例子参考:

https://www.programcreek.com/python/example/60711/flask.request.data

flask request模块的更多相关文章

  1. python flask的request模块以及在flask编程中遇到的坑

    一.首先来讲讲遇到的坑: 1.linux下package的打包引用: """ 路径结构如下: ./project ./bin ./api ""&quo ...

  2. Flask request 属性详解

    Flask request 属性详解 一.关于request在Flask的官方文档中是这样介绍request的:对于 Web 应用,与客户端发送给服务器的数据交互至关重要.在 Flask 中由全局的 ...

  3. dojo/request模块整体架构解析

    总体说明 做前端当然少不了ajax的使用,使用dojo的童鞋都知道dojo是基于模块化管理的前端框架,其中对ajax的处理位于dojo/request模块.一般情况下我们使用ajax请求只需要引入do ...

  4. node.js的request模块

    request模块让http请求变的更加简单.最简单的一个示例: 1: var request = require('request'); 2:  3: request('http://www.goo ...

  5. 1.4 flask request和session

    2019-1-4 18:13:57 越努力,越幸运! 还有121天,flask讲完,还有4天,总时长130天 还有13天就讲完了 一月争取看完!!! 永远不要高估自己! 今天学了request和ses ...

  6. python接口自动化测试(一)-request模块

    urllib.request模块是python3针对处理url的. 1. 首先导入: from urllib import request 2. 构造url,构造url的headers信息和传参[re ...

  7. request 模块详细介绍

    request 模块详细介绍 request Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装 ...

  8. 第5月第10天 node.js的request模块

    1.node.js的request模块 http://www.cnblogs.com/meteoric_cry/archive/2012/08/18/2645530.html

  9. 【nodejs】理想论坛帖子下载爬虫1.07 使用request模块后稳定多了

    在1.06版本时,访问网页采用的时http.request,但调用次数多以后就问题来了. 寻找别的方案时看到了https://cnodejs.org/topic/53142ef833dbcb076d0 ...

随机推荐

  1. mysql覆盖索引(屌的狠,提高速度)

    话说有这么一个表: CREATE TABLE `user_group` ( `id` int(11) NOT NULL auto_increment, `uid` int(11) NOT NULL, ...

  2. 浏览器端Less

    摘要: 之前项目用过Less,现在负责的项目也要使用,所以就总结下Less,也方便以后查看.本文主要是讲浏览器端如何使用Less. 简介: LESS是一种由Alexis Sellier设计的动态层叠样 ...

  3. php 内存分配

    php内核中的内存分配 使用的函数有 emalloc(), erealloc() ,这两个函数分别是malloc(),realloc()函数的封装 关于内存分配有四个容器:cache,小块内存链表,大 ...

  4. 【ArcGIS】ArcGIS Android SDK

    1.错误提示 11-06 18:12:17.553: A/libc(11929): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1 ...

  5. 消息中间件activemq-5.14.1安全验证配置

    activemq分为控制端和客户端,下面分别介绍安全认证配置方法. 1.控制端安全配置 (1). ActiveMQ目录conf下找到jetty.xml: <bean id="secur ...

  6. Python学习--字符串slicing

    Found this great table at http://wiki.python.org/moin/MovingToPythonFromOtherLanguages Python indexe ...

  7. mybatis 之 parameterType="list"

    <!-- 根据货品编号查找货品图片地址,货品ID,商品ID,货品名称 --> <select id="getGoodsInfoByGoodsNo" paramet ...

  8. (转)C语言中长度为0的数组

    前面在看Xen的源码时,遇到了一段代码,如下所示: 注意上面最后一行的代码,这里定义了一个长度为的数组,这种用法可以吗?为什么可以使用长度为0 的数组?长度为的数组到底怎么使用?……这篇文章主要针对该 ...

  9. C语言EOF是什么?

    C语言 EOF是什么? Linux中,在新的一行的开头,按下Ctrl-D,就代表EOF(如果在一行的中间按下Ctrl-D,则表示输出"标准输入"的缓存区,所以这时必须按两次Ctrl ...

  10. 【转载】6种.net分布式缓存解决方案

    . 使用内置ASP.NET Cache (System.Web.Caching) : https://msdn.microsoft.com/en-us/library/system.web.cachi ...