请求数据获取与响应

本文详细介绍了Flask框架中处理HTTP请求的不同参数,包括请求体、请求头、URL参数、表单数据、文件上传和请求方法。同时,讲解了如何获取查询参数和表单数据,以及如何响应JSON数据和自定义响应。示例代码展示了使用`request`对象获取参数和使用`make_response()`创建自定义响应的方法。
摘要由CSDN通过智能技术生成

1、请求参数

# 请求参数
客户端的请求参数一般存在于三个地方: 
    1.请求体
    2.请求头
    3.URL参数: 
        1).固定参数
        2).查询字符串
序号参数或信息解释
1固定参数URL的组成部分, 不可缺失
2查询字符串: args根据需求, 可有可无
3表单数据: form提交form表单是传递的数据
4文件上传: files用户向服务器上传的文件
5请求头: headers请求头中携带的请求信息
6请求方法: method请求所使用的的请求方法
7URL地址: url请求的URL地址

2、查询参数获取

args:查询参数
(1).查询参数
查询参数在URL中以?与主路由进行分隔, 查询参数是以键值对形式出现的, 键与值使用"="连接, 如下所示:
/user/?userid=333

(2).查询参数的获取
request.args.get(‘key’)
request.args[‘key’]

from flask import Flask

app = Flask(__name__)

## 查询参数的获取
1.导入request对象
from flask import request
@app.route("/query")
def query():
    # 获取所有的查询参数,并转换为dict类型
    params = request.args.to_dict() # 把不可变字典类型转换为普通的dict类型
    print(params)
    print(type(params))

    # 接收查询的参数
    # name = request.args["name"]   # 获取某一个参数
    name = request.args.get("name")   # 获取某一个参数
    age = request.args.get("age")
    return "当前名字是 %s ,年龄是 %s" % (name, age)

3、表单数据获取

form: 表单数据
(1).表单数据
form表单数据, 一般应用与登录, 注册, 信息提交等. 配合前端的form表单使用, 一般form表单都是post请求, 注意路由中指定POST请求方法, 将表单数据封装在请求体中.

(2).表单数据获取方式
request.form.get(‘key’)

from flask import Flask
from flask import request

app = Flask(__name__)

@app.route("/form", methods=["post"])   # 允许post访问
def form():
    params = request.form.to_dict() # 把不可变字典类型转换为普通的dict类型
    print(params)
    print(type(params))

    name = request.form.get("name")
    age = request.form.get("age")
    return "当前名字是 %s ,年龄是 %s" % (name, age)

4、json数据响应

# 返回json数据
# 返回json数据需要借助flask提供的jsonify来实现
from flask import Flask
from flask import jsonify
app = Flask(__name__)

@app.route("/return_json")
def return_json():
    data = {
        "name": "tongtong",
        "age": "18"
    }
    return jsonify(data)

5、元组数据响应

# 元组数据响应
# 可以返回一个元组,这样的元组必须是 (response, status, headers) 的形式,且至少包含2个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。
from flask import Flask
from flask import jsonify
app = Flask(__name__)

@app.route("/return_json")
def return_json():
    return ("hello",400,{"aaa": "bbb"})

6、make_response()自定义响应

make_response()形式

flask可以返回make_response自定义的响应, make_response()内部需要传递返回的字符串, 其创建的对象还有headers属性用于设置响应头, status属性用于设置状态码

# make_response()自定义响应
from flask import make_response
@app.route("/return_obj")
def return_obj():
    # 响应字符串
    resp = make_response('自定义的响应字符串')
    # 响应头键值对
    resp.headers['author'] = 'jeremy'
    # 状态码与状态码提示信息
    resp.status = '404'
    # 注意: 响应头键值对与状态码提示信息均为英文, 否则抛异常
    return resp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值