• flask更改已有的response


    今天遇到个问题,需要更改返回的response,但框架已经生成了一个response,所以需要直接更改。

    试着找了找解决办法,最终解决方式如下:

    1 #下文中payload的类型是 
    2 # class Response(werkzeug.wrappers.Response, JSONMixin)
    3 
    4     payload.set_data(json.dumps({'status': 'OK'}))
    5     payload.status_code = 200
    6     payload.content_type = 'application/json'

    虽然可以解决问题,但觉得生成response后再改多少有点多此一举,以后还是要尽量避免这样。

    那么,redirect(one_url)可以使用:

     1     from werkzeug.utils import escape
     2     from werkzeug.urls import iri_to_uri
     3 
     4     location = one_url
     5     display_location = escape(location)
     6     location = iri_to_uri(location, safe_conversion=True)
     7 
     8     payload.set_data('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML         3.2 Final//EN">
    '
     9         '<title>Redirecting...</title>
    '
    10         '<h1>Redirecting...</h1>
    '
    11         '<p>You should be redirected automatically to target URL: '
    12         '<a href="%s">%s</a>.  If not click the link.' %
    13         (escape(location), display_location))
    14     payload.mimetype ='text/html'  # 查了查,似乎指定mimetype更合适,content_type会根据mimetype自动生成。
    15     payload.status_code = 302
    16     payload.headers['Location'] = location

    来代替。

  • 相关阅读:
    27.TreeMap
    26.HashCode
    25.HashTable
    myeclipse快捷键
    spring 配置
    jdbcType和javaType对应关系
    Ajax表单提交
    ajax
    JQuery及Form插件使用
    jsp标准数据库
  • 原文地址:https://www.cnblogs.com/lyg-blog/p/10051030.html
Copyright © 2020-2023  润新知