zoukankan      html  css  js  c++  java
  • 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

    来代替。

  • 相关阅读:
    .net事件和委托
    DataFormatString使用笔记
    DropDownList 绑定 枚举 Enum
    iOS开发如何实现消息推送机制
    JQuery调用asp.net后台方法
    Android 服务器推送技术
    Jquery Ajax ashx DataTable 传参 获取参数 C#
    jquery 基础
    [Perl书籍合集]Perl eBooks Collection
    LISP之根源
  • 原文地址:https://www.cnblogs.com/lyg-blog/p/10051030.html
Copyright © 2011-2022 走看看