美文网首页
flask-请求报文

flask-请求报文

作者: 测试探索 | 来源:发表于2022-07-21 20:35 被阅读0次

一、请求报文常用参数

  • method:请求的类型(GET/POST/OPTIONS等)
  • form:POST请求数据dict
  • args:GET请求数据dict
  • values:POST请求和GET请求数据集合dict
  • files:上传的文件数据dict
  • cookies:请求中的cookie dict
  • headers:HTTP请求头

二、获取get参数

from flask import Flask,current_app,request

app = Flask(__name__)

@app.route("/test/req")
def test_request():
    """
    请求报文练习
    :return:
    """
    get_args = request.args
    print(get_args)
    #页码一定是正整数
    page = request.args.get("page",1)
    print(page)
    return "request success"

if __name__ == '__main__':
    app.run(debug=True)

image.png
from flask import Flask,current_app,request

app = Flask(__name__)

@app.route("/test/req")
def test_request():
    """
    请求报文练习
    :return:
    """
    get_args = request.args
    print(get_args)
    #页码一定是正整数
    page = request.args.get("page",1)
    print(page)
    # 获取服务器所在的主机地址
    headers = request.headers
    print(headers)
    print(headers.get("host"))

    # 获取ip地址
    ip = request.remote_addr
    print("远程iP地址",ip)

    # 获取User-agent
    user_agent = request.headers.get("User-Agent",None)
    print("user_agent",user_agent)
    return "request success"

if __name__ == '__main__':
    app.run(debug=True)

二、请求钩子

应用场景
  • 每个请求中都要验证用户信息(是否已登录、是否有权限访问)
  • 限制来自某些ip的恶意请求
  • 使用钩子函数可以减少重复代码的编写,便于维护
具体应用
  • before_first_request:在处理第一个请求前运行
    @app.before_first_request
  • before_request:在每次请求前运行
  • after_request(response):如果没有未处理的异常抛出,在每次请求后运行
  • teardown_request(response):在每次请求后运行,即使有未处理的异常
from flask import Flask,current_app,request

app = Flask(__name__)

@app.route("/test/req")
def test_request():
    """
    请求报文练习
    :return:
    """
    get_args = request.args
    #页码一定是正整数
    page = request.args.get("page",1)
    # 获取服务器所在的主机地址
    headers = request.headers

    # 获取ip地址
    ip = request.remote_addr
    # 获取User-agent
    user_agent = request.headers.get("User-Agent",None)
    return "request success"


@app.before_first_request
def first_request():
    """
    服务器启动后第一个请求到达
    :return:
    """
    print("first_request")

@app.before_request
def per_request():
    """
    每一个请求到达前
    :return:
    """
    print("befor request")

if __name__ == '__main__':
    app.run(debug=True)
image.png

相关文章

  • flask-请求报文

    一、请求报文常用参数 method:请求的类型(GET/POST/OPTIONS等) form:POST请求数据d...

  • 3. HTTP报文内的HTTP信息

    HTTP报文 请求报文 | 响应报文分为报文头部和报文主体 请求报文和响应报文的结构 报文头部内容如下: 请求行 ...

  • HTTP协议报文及Chrome Network常用功能

    HTTP协议报文 Http协议报文分为【Http请求报文】和【Http响应报文】 HTTP请求报文 Http请求报...

  • http协议

    http报文 http报文有两种,请求报文和响应报文 请求报文请求报文格式,图源参考资料1请求报文具体例子,图源参...

  • http报文结构解析

    1、http协议结构? 2、请求报文和响应报文的区别是? 请求报文和响应报文的区别在于,请求报文是请求行,相应报文...

  • http报文详解

    http的报文 分为两个报文:请求报文和响应报文一、请求报文分为四部分:请求行、请求头部、空行和请求数据1、请求行...

  • HTTP协议相关

    超文本传输协议 请求/响应报文 连接建立的流程 HTTP的特点 请求/响应报文 请求报文请求报文结构请求行、首部字...

  • HTTP报文格式及相关方法

    HTTP报文 请求报文 HTTP 请求报文由3部分组成(请求行+请求头+请求体) 请求行包括:请求方法、请求URL...

  • 网络请求相关

    HTTP 超文本传输协议 请求/响应报文 连接建立流程 HTTP的特点 1. 请求/响应报文 请求报文请求报文包括...

  • http报文解析, 网络通信协议类型,cookie,token,

    HTTP报文: HTTP报文的流动方向: 报文的语法: 1.1请求报文: 请求报文的格式: 1.2响应报文: 响应...

网友评论

      本文标题:flask-请求报文

      本文链接:https://www.haomeiwen.com/subject/beyyirtx.html