• 8_关于flask中的响应Response


    关于响应 (Response)

    视图函数中的返回值会被自动转换为一个响应对象,在Flask中的转换逻辑如下:

    • 如果返回的是一个合法的响应对象,则直接返回。

      from flask import Flask, Response # 因为在flask中导入过了Response, 所以Response可以直接从此处导入
      @app.route('/')
      def index():
          return Response('首页')
      
    • 如果返回的是一个字符串,那么Flask会自动创建一个werkzeug.wrappers.Response对象,Response对象将该字符串作为主体,状态码为200,MIME类型为text/html, 然后返回该Response对象.

      @app.route('/')
      def index():
          # return '首页'   # 返回一个字符串,转换逻辑如下:
          response = Response('首页', status=200, mimetype='text/html; charset=utf-8')
          return response
      
    • 如果返回的是一个元组,元组中的数据类型是(response, status, headers)。status值会覆盖默认的200的状态码,headers可以是列表或者字典,作为额外的参数头.

      @app.route('/list/')
      def my_list():
          # 三个参数,可以不写全
          # return 'list', 200
          return ('list', 200)
          return ('list', 200, {'name': 'cheng'})
      
       	# return ('list2', 300, {'name': 'cheng'})
          # return 'list2', 300, {'name': 'cheng', 'age': 18, 'sex': 'man', 'country': 'china'}
          # return 'list2', 200, [('name', 'cheng'), ('age', 18)]
      
    • 如果以上都不满足,Flask会假设返回值是一个合法的WSGI应用程序,并通过Response.force_type(rv, request, environ转换为一个请求对象.

  • 相关阅读:
    js创建json对象
    redis命令行清缓存
    查询某个用户所有新增的用户,本月新增用户,上个月新增的用户
    js处理el表达式
    调用上一个页面的js方法
    生成唯一code
    jeeplus中两个项目redis冲突问题
    $ 与 #
    字典表的维护
    将html文档转成pdf
  • 原文地址:https://www.cnblogs.com/nichengshishaonian/p/11631676.html
Copyright © 2020-2023  润新知