Flask  request 对象详情

目录
  • 1、request请求对象
    • 1.1request请求对象的使用

前言:

一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应。为了能方便的访问获取请求及响应报文信息,Flask 框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request

1、request请求对象

request请求对象封装了从客户端发来的请求报文信息,我们能从request对象上获取请求报文中的所有数据。 其大部分功能是由依赖包Werkzeug完成的,Flask 做了一些特定功能的封装,形成了request请求对象。

1.1request请求对象的使用

 导入flask包中的request对象,就可以直接在请求函数中使用该对象了。

from flask import request

@app.route('/user', methods=['GET', 'POST'])

def user():

    if request.method == 'POST':

        user_name = request.form['user_name']

        return 'user :{} add success!'.format(user_name)

    else:

        user_id = request.args.get('user_id', 0)

        return 'Hello user:{}!'.format(user_id)

上述代码中:request对象中的method变量可以获取当前请求的方法,即GET、POST、PUT、DELETE等;form变量获取POST请求form-data表单中的数据,本质是一个字典,如果提交的表单中没有user_name,则会返回 400 Bad Request 的错误,当然也可以使用异常捕获机制处理。request.args.get()方法获取的是GET请求的url中的参数(问号?之后的部分),第一个参数指定获取的 url 参数的 key,第二个参数指定默认值,当 key 不存在时,则返回默认值。

如下:

GET请求

POST请求

除此之外,请求报文中的其他信息都可以通过 request 对象提供的属性和方法获取,常用的部分如下:

  • url:请求的 url
  • args:WerkzeugImmutableMultiDict 对象,存储解析后的查询字符串,可通过字典方式获取键值
  • blueprint:当前蓝本的名称
  • cookies:一个包含所有随请求提交的 cookies 的字典
  • data:包含字符串形式的请求数据
  • endpoint:于当前请求相匹配的端点值
  • files:Werkzeug MultiDict 对象,包含所有上传文件
  • form:Werkzeug ImmutableMultiDict 对象,包含解析后的表单数据
  • values:WerkzeugCombinedMultiDict 对象,结合了 args form 属性的值
  • get_data(cache=True,as_text=False,parse_from_data=False):获取请求中的数据,默认读取为字节字符串(bytestring),as_text为True则返回解码后的unicode字符串
  • get_json(self,force=False,silent=False,cache=True):作为 json 解析并返回数据,如果 MIME 类型不是 json,返回 None(除非 force 设为 True);解析出错则抛出Werkzeug提供的 BadRequest 异常(如果未开启调试模式,则返回400错误响应),如果 silent 设为 True 则返回 None;cache 设置是否缓存解析后的 json 数据
  • headers:WerkzeugEnvironHeaders 对象,包含请求的头部字段
  • json:包含解析后的 json 数据,内部调用 get_json(),可通过字典的方式获取键值
  • method:请求的 HTTP 方法
  • referrer:请求发起的源 url,即 referer
  • scheme:请求的URL模式(http 或 https)
  • user_agent:用户代理(User Agent),包含了用户的客户端类型,操作系统类型等信息

到此这篇关于 Flask  request 对象详情的文章就介绍到这了,更多相关 Flask  request 对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 从源码解析Python的Flask框架中request对象的用法

    from flask import request Flask 是一个人气非常高的Python Web框架,笔者也拿它写过一些大大小小的项目,Flask 有一个特性我非常的喜欢,就是无论在什么地方,如果你想要获取当前的request对象,只要 简单的: 从当前request获取内容: method: 起始行,元数据 host: 起始行,元数据 path: 起始行,元数据 environ: 其中的 SERVER_PROTOCOL 是起始行,元数据 headers: 头,元数据 data: body

  • Flask框架请求钩子与request请求对象用法实例分析

    本文实例讲述了Flask框架请求钩子与request请求对象.分享给大家供大家参考,具体如下: 请求钩子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接 在请求开始时,根据需求进行权限校验 在请求结束时,指定数据的交互格式 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子. 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: 请求钩子 描述 before_first_request 在处理第一个

  • Flask  request 对象详情

    目录 1.request请求对象 1.1request请求对象的使用 前言: 一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应.为了能方便的访问获取请求及响应报文信息,Flask 框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request. 1.request请求对象 request请求对象封装了从客户端发来的请求报文信息,我们能从request对象上获取请求报文中的所有数据. 其大部分功能是由依赖包

  • Flask  request 对象介绍

    目录 1.request请求对象 1.1request请求对象的使用 前言: 一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应.为了能方便的访问获取请求及响应报文信息,Flask 框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request. 1.request请求对象 request请求对象封装了从客户端发来的请求报文信息,我们能从request对象上获取请求报文中的所有数据. 其大部分功能是由依赖包

  • Flask  response 对象详情

    在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可.在之前的文章中,我们了解到 Flask 会先匹配请求 url 的路由,调用对应的视图函数,视图函数的返回值构成了响应报文的主体内容. 如果视图函数只返回一个元素的话,Flask 会创建 Response 对象,Response将该返回值作为主体内容,状态码默认为200,MIME 的类型为text/html,然后返回该 Response 对象. 其实视图函数可以返回

  • JSP的request对象实例详解

    JSP的request对象实例详解 一 request对象定义 客户端的请求信息被封装在request对象中,通过它才能了解客户的需求,然后做出响应.它是HttpServletRequest类的实例.request对象具有请求域,即完成客户端的请求之前,该对象一直有效. 二 request对象方法 三 实例 <%@ page language="java" import="java.util.*" contentType="text/html; ch

  • java web学习_浅谈request对象中get和post的差异

    阅读目录(Content) •1.get与post的区别 •1.1 get方法 jsp中的代码form表单代码 •1.2 action包中servlet的doGet方法中的代码 •2.运行结果 •2.1 输入数据 •2.2 打印出数据 •3.post方法 •4.对比 •4.1 在输出页面按下F12查看 •5.分析 1.get与post的区别 Get和Post方法都是对服务器的请求方式,只是他们传输表单的方式不一样. 下面我们就以传输一个表单的数据为例,来分析get与Post的区别 1.1 get

  • Java开发之request对象常用方法整理

     Java开发之request对象常用方法整理 本文主要介绍了Java中的request对象,并且对request对象中的一些常用方法作了一点总结,如果你是Java初学者,或许这篇文章对你会有所帮助. HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息. request常用方法: 一.获取客户机环境信息常见方法: 1.getRequestURL方法返回客户端

  • 详解Django中Request对象的相关用法

    从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时并没有讲太多. 让我们回忆下:每个view函数的第一个参数是一个HttpRequest对象,就像下面这个hello()函数: from django.http import HttpResponse def hello(request): return HttpResponse("Hello world") HttpRequest对象,比如上面代码里的request变量,会有一

  • 解决IIS8.5中ASP上传大文件出现 Request 对象 错误 ASP 0104 : 80004005 错误的方法

    今天将一台服务器升级到了最新的IIS8.5,然后部署网站,上面有一个比较老的ASP站点发现了问题,上传稍大一点的文件就出错,传个几十K的文件到没有问题,我们都知道IIS默认上传文件大小是30M,而现在上传1M都有问题,下面给出解决方法. 上传不了的出错提示为:Request 对象 错误 'ASP 0104 : 80004005',原因是站点ASP的"限制属性"设置中"最大请求实体主体限制"默认只允许200K,将其改大一点就可以了,相关截图如下所示: 图中最大请求实体

  • Asp.net内置对象之Request对象(概述及应用)

    前言:Request对象主要用于获取来自客户端的数据,如用户填入表单的数据.保存在客户端的Cookie等. 一.Request对象概述 1.主要属性  ApplicationPath  获取服务器上asp.net应用程序的虚拟应用程序根路径  Browser  获取有关正在请求的客户端的浏览器功能的信息,该属性值为:HttpBrowserCapabilities对  象  ContentEncoding  获取或设置实体主体的字符集.该属性值为表示客户端的字符集Encoding对象  Conte

随机推荐