• flask request模块


      

    前言

    在进行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

  • 相关阅读:
    为什么大家都说 SELECT * 效率低?
    一个 Java 方法,最多能定义多少参数?
    牛逼哄哄的布隆过滤器,到底有什么用?
    10w+ Excel 数据导入,怎么优化?
    为什么 wait 方法要在 synchronized 中调用?
    使用Redis存储聊天数据的一种方案(使用lua解决原子性问题)
    Linux下安装redis
    Django Rest Framework组件:解析器JSONParser、FormParser、MultiPartParser、FileUploadParser
    API测试之Postman使用全指南(转载)
    Django Rest Framework组件:序列化与反序列化模块Serializer
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/8660402.html
Copyright © 2020-2023  润新知