请求响应

请求简介

  • Flask的request对象几乎包含了所有的HTTP请求信息
属性 说明
request.url 完整的路由地址
request.base_url 不包含get参数的路由地址
request.host 只包含主机和端口
request.host_url 只包含协议主机和端口
request.full_path 完整路由中除了host_url的部分
request.path 只包含路由装饰器中的地址
equest.method 请求方法的类型:GET、POST
request.remote_addr 远程客户端IP地址
request.args 所有的GET参数
request.form 所有的POST参数
request.values 所有的GET和POST参数
request.json 所有的JSON参数
request.files 所有的上传文件信息
request.headers 所有的请求头信息

请求总结

  • args、form、values、json、files、headers都继承自MultiDict,支持一键多值的情况
  • request.xxx.get(key)获取键对应的值(返回第一个)
  • request.xxx.getlist(key)获取键对应的值的列表(即使只有一个值)
  • request.xxx.to_dict(flat)转换为字典,flat为True(默认)字典的值为第一个,flat为False字典的值为列表
  • 示例:请求http://localhost:5000/?like=sport&like=music
request.args.get('like')            # 'sport'
request.args.getlist('like')    # ['sport', 'music']
request.args.to_dict()                # {'like': 'sport'}
request.args.to_dict(False)        # {'like': ['sport', 'music']}

响应示例

from flask import make_response

# 响应
@app.route('/response/')
def response():
    # 直接返回字符串
    # return 'ok'
    # 可以顺便指定状态码,默认为200
    # return 'page not found', 404
    # 也可以指定响应头信息(一个字典)
    # return 'page not found', {'xxx': 'yyy'}
    # 可以同时指定响应体、状态码、响应头
    # return 'page not found', 404, {'xxx': 'yyy'}
    # 创建响应对象,也可以指定状态
    resp = make_response('我是通过函数创建的响应', 404)
    # 设置响应头
    resp.headers['uid'] = 250
    return resp

响应总结

  • 可以返回一个字符串
  • 可以指定状态码,默认为200
  • 可以指定响应头信息,一个字典即可
  • 可以使用专门的函数make_response构建响应

results matching ""

    No results matching ""