【Flask】关于Flask的request属性

前言

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

关于request

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

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

从Flask模块导入request

from flask import request
  • 1

request的属性

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

  • form

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

  • args

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

searchword = request.args.get(‘key‘, ‘‘)
  • 1
  • 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。

原文地址:https://www.cnblogs.com/yanzi-meng/p/8251089.html

时间: 2024-10-11 16:41:39

【Flask】关于Flask的request属性的相关文章

Flask的响应及request属性整理

类比django框架,Response三贱客: return  HttpResponse:  return 'xxxxxxxxxx'                 # 返回字符串 return  render      :  return render_tempalte( 'html页面' )  # 返回页面 return  redirect     :  return redirect( '/路径' )             # 重定向路径 flask内特殊的两个response方法: r

Flask request 属性详解

Flask request 属性详解 一.关于request在Flask的官方文档中是这样介绍request的:对于 Web 应用,与客户端发送给服务器的数据交互至关重要.在 Flask 中由全局的 request 对象来提供这些信息. 从Flask模块导入request:from flask import requestrequest的属性:下面是request可使用的属性,其中黑体是比较常用的. 二.常用方法的使用 #代码示例,仅仅是为了测试request的属性值 @app.route('/

网站后端_Python+Flask.0010.FLASK即插视图之自定义视图类及视图修饰?

即插视图; 说明: FLASK的视图灵感来自于DJANGO的基于类而非基于函数的通用视图,主要目的是为了解决多个视图函数之间已经实现的部分,通过类继承的方式继承到其它视图,总之为了一点,就是少写代码,然后通过add_url_rule让我们定义的视图类支持动态插入,也就是所谓的即插视图 深入视图: # 转换前: #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # 51CTOBG: h

网站后端_Python+Flask.0007.FLASK构造跳转之301跳转与302重定向?

构造地址: 说明: FLASK支持通过视图函数及传参来构造URL,而且未来修改URL可一次性修改,且默认构建会转义特殊字符和Unicode数据,这些工作不需要我们自己处理,且不仅支持在上下文中构造而且还支持在模版文件中构造 #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # 51CTOBG: http://xmdevops.blog.51cto.com/ # Purpose: #

网站后端_Python+Flask.0012.FLASK域名相关之域名与动态子域名实现?

域名设置: 说明: SERVER_NAME内置属性的设置会影响全局URL,它主要有两个作用,第一个作用是在请求上下文之外生成绝对URL,当然如果设置也会影响请求上下文内的绝对URL,第二个作用是用于子域名的支持 #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # 51CTOBG: http://xmdevops.blog.51cto.com/ # Purpose: # "

网站后端_Python+Flask.0008.FLASK响应相关之隐式显式与自定义响应?

隐式响应: 1. 视图函数的返回值会被隐式转换为一个响应对象 2. 如果返回的是一个合法的响应对象,则会从视图函数中直接返回 3. 如果返回的是一个字符串,会用字符串数据和默认参数创建字符串为主体,状态码为200,MIME类型为text/html的werkzeug.wrappers.Response响应对象 4. 如果返回的是一个元组(response, status, headers),且至少包含一个元素,status值会覆盖状态代码,headers可以是一个列表或是字典,作为额外的消息头 5

网站后端_Python+Flask.0006.FLASK地址转换之默认转换与自定义转换?

动态规则: 说明: URL规则可添加变量部分,也就是说将符合同种规则的URL抽象成一个URL模式 @app.route('/instance/<uuid>/') def instance(uuid):     return 'Instance: {}'.format(uuid) 注意: 尖括号中内容是动态的,凡是匹配到/instance/前缀的都会被映射到这个路由上,在内部把uuid作为参数而获得,默认类型为字符串 默认转换: 说明: 可通过<converter:variable_nam

[Flask]学习Flask第三天笔记总结

1 from flask import Flask,render_template,request 2 from others import checkLogin 3 app = Flask(__name__) 4 5 #从templates里引用index.html 6 #return render_template("index.html") 7 @app.route('/') 8 def index(): 9 return '''<form action="/lo

网站后端_Python+Flask.0004.FLASK配置管理之三种方式加载外部配置?

简单介绍: 说明: 复杂的项目需要配置各种环境,若设置少可直接硬编码,设置多的话可通过加载配置/加载文件/加载变量的方式来设置 app.config.update(     DEBUG=True, ) 扩展: app.config是flask.config.Config类的实例,继承子PY内置数据结构dict,所以可以使用如上update方法,支持传入多个键值对,其实app.config内置很多配置变量(http://flask.pocoo.org/docs/0.11/config/#Built

【Flask】Flask Cookie操作

### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了.cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB.