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

    来代替。

  • 相关阅读:
    CSS 浮动
    函数defined
    SVN提交冲突
    抽象方法和抽象类
    Teco测试总结
    面向对象三大特性(封装,继承,多态)之多态
    PHP工厂模式的简单实现
    DOM 访问节点
    c程序的执行过程
    PHP实现菱形与杨辉三角形【php趣味案例】
  • 原文地址:https://www.cnblogs.com/lyg-blog/p/10051030.html
Copyright © 2011-2022 走看看