Python Web框架Sanic response json() 函数用法和示例

发表时间:2020-02-18

response.json() 功能: Sanic 返回json格式的文本内容给浏览器,这个json数据格式多用于网页异步加载AJAX的后端接口,或者是实现API与http客户端进行数据交换。

Sanic response.json() 函数

response.json() 语法

def json(
    body,
    status=200,
    headers=None,
    content_type="application/json",
    dumps=json_dumps,
    **kwargs
):

response.json() 参数

  • body:响应要返回的JSON数据,通常是一个字典;
  • status:默认 http 状态码200,正常返回不要修改;
  • headers:自定义 http 响应头;
  • content_type:纯文本的content type,不要修改;
  • dumps:把json数据(字典)dumps为字符串的函数;
  • kwargs:dumps函数的参数;

这里面, body 是必需的参数,可以通过传入 headers 来自定义响应头,content_type参数不要修改。如果响应自己的dumps函数可以为设置 dumps 参数。

如果想修改默认的dumps函数的参数,可以传值给 kwargs ,比如, eunsure_ascii=False indent=4 等等,更多参数详见Python的json模块的 json.dumps() 函数。

比如,自定义响应头headers:


return json({'msg':'Welcom to 猿人学Python'},
            headers={'X-Serverd-By': 'YuanRenXue Python'})

response.json() 返回值

返回一个 HTTPResponse 类的实例。多数情况下,路由函数直接返回这个实例。当需要再进一步处理响应(比如,设置响应cookies)时,要把它赋值给一个变量。

response.json() 例子

from sanic import Sanic
from sanic import response


app = Sanic()


@app.route('/json')
async def json(request):
    return response.json(
        {'msg': 'Welcom to 猿人学Python'},
        headers={'X-Serverd-By': 'YuanRenXue Python'},
        ensure_ascii=False,
        indent=4,
    )


if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8888)

通过 curl 来查看json响应:

curl -i http://127.0.0.1:8888/json

结果如下,可以看到我们自定义的headers X-Serverd-By: YuanRenXue Python


HTTP/1.1 200 OK
Connection: keep-alive
Keep-Alive: 5
X-Serverd-By: YuanRenXue Python
Content-Length: 41
Content-Type: application/json

{
    "msg":"Welcom to 猿人学Python"
}

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free