flask之请求request相关探究

#! /usr/bin/python3
# -*- coding:utf-8 -*-
# file: lflask.py
# author: wangchenxi
# mail: wongchenxi@icloud.com
# brief:
# version: 0.1.00
# Create Time:2019-12-23 00:45:20
# Last Update: 2019-12-23 19时46分04秒

from flask import Flask, render_template, request

app = Flask(__name__)  # 配置传参后续章节再说明


@app.route(
    "/response",
    methods=["get", "PoSt"],
    endpoint="my_response",
    strict_slashes=True)
# 默认Get 请求方式,配置传参后续章节再说明
def my_response():
    return render_template("login1.html")
    # 项目默认配置的模板目录是templates


'''请求举例
POST /request1?id=567 HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache
Postman-Token: f0bdb262-6801-45fe-83b0-b62136419627,ed868327-6b07-422b-ade8-8f4e3dc7d67a
Host: 127.0.0.1:5000
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Accept-Encoding: gzip, deflate
Content-Length: 670717
Connection: keep-alive
cache-control: no-cache


Content-Disposition: form-data; name="u"

123
------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="u"

123
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="my_file"; 
filename="/home/wangchenxi/图片/2019-12-20 23-50-36 的屏幕截图.png


------WebKitFormBoundary7MA4YWxkTrZu0gW--
'''


@app.route(
    "/request1",
    methods=["get", "PoSt"],
    endpoint="my_test1",
    strict_slashes=True)
# 默认Get 请求方式,配置传参后续章节再说明
def my_response6():
    print(request.files)
    # file_storage 直接保存文件
    file = request.files.get("my_file")
    # file file_storage
    filename = file.filename
    print(filename)
    file.save("当前文件名或者文件路径.png")

    print(request.args.get("id"))
    # 获取 URL 中的请求参数/request1?id=1 字典
    print(request.args.to_dict())
    # 将获取的数据转化为字典
    print(request.form.get("u"))
    # FormData中的数据 POST 请求提交 form == args
    print(request.form.to_dict())

    print(request.json)
    print(request.data)

    d = {
        'request.method': request.method,
        'request.url': request.url,
        'request.path': request.path,
        'request.host': request.host,
        'request.host_url': request.host_url
    }

    return d


'''以下是响应结果
{
    "request.host": "127.0.0.1:5000",
    "request.host_url": "http://127.0.0.1:5000/",
    "request.method": "POST",
    "request.path": "/request1",
    "request.url": "http://127.0.0.1:5000/request1?id=567"
}

'''

'''请求举例
GET /request2?id=567 HTTP/1.1
Host: 127.0.0.1:5000
Content-Type: application/json
User-Agent: PostmanRuntime/7.20.1
Accept: */*
Cache-Control: no-cache
Postman-Token: 85b71e5a-d77b-48b8-bf00-2e4c3522b4d2,659e2126-57fa-459d-9d79-8d81420608da
Host: 127.0.0.1:5000
Accept-Encoding: gzip, deflate
Content-Length: 30
Connection: keep-alive
cache-control: no-cache

{"test_json":"test_string"}
'''


@app.route("/request2", methods=["get", "PoSt"],
           endpoint="my_test2", strict_slashes=True)  # 默认Get 请求方式,配置传参后续章节再说明
def my_response7():
    print(request.args.get("id"))  # 获取 URL 中的请求参数 /login?id=1 字典
    print(request.args.to_dict())  # 将获取的数据转化为字典

    print(request.json)
    print(request.data)

    d = {
        'request.method': request.method,
        'request.url': request.url,
        'request.path': request.path,
        'request.host': request.host,
        'request.host_url': request.host_url
    }

    return d  # == jsonify(d)


'''以下是响应结果
{
    "request.host": "127.0.0.1:5000",
    "request.host_url": "http://127.0.0.1:5000/",
    "request.method": "GET",
    "request.path": "/request2",
    "request.url": "http://127.0.0.1:5000/request2?id=567"
}
'''

if __name__ == '__main__':
    app.run('0.0.0.0', 5000)

版权声明:除特别注明外,本站所有文章均为王晨曦个人站点原创

转载请注明:出处来自王晨曦个人站点 » flask之请求request相关探究

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注