首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sanic (异步+ uvloop webserver) -返回自定义响应

Sanic (异步+ uvloop webserver) -返回自定义响应
EN

Stack Overflow用户
提问于 2016-12-14 15:29:41
回答 2查看 2.1K关注 0票数 4

我从萨尼奇开始..。

Sanic是一个类似水瓶的服务器,它是为了快速运行而编写的。(...)在类似于烧瓶的基础上,Sanic支持异步请求处理程序。这意味着您可以使用Python3.5中的新的闪亮异步/等待语法,使您的代码非阻塞且快速。

..。在此之前,很少有关于如何使用他的例子,而且这些文档也不是很好。

按照docs的基本示例,我们有

代码语言:javascript
复制
from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
    return json({"test": True})

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8000)

例如,如何使用自定义状态代码返回自定义响应?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 15:29:41

萨尼奇中,HTTP是HTTPResponse的实例,正如您在下面的代码实现中所看到的那样,jsontexthtml函数只是封装了对象创建过程,遵循工厂模式

从ujson进口转储为json_dumps .def json(body,status=200,headers=None):返回HTTPResponse(json_dumps(body),headers=headers,status=status,content_type="application/json")

函数json({"test": True})只是使用超快的尤森dict对象转储为JSON字符串,并设置content_type param。

因此,您可以返回一个自定义状态代码,返回json({"message": "bla"}, status=201)或创建一个HTTPResponse作为上面的代码。

票数 8
EN

Stack Overflow用户

发布于 2018-08-18 11:11:32

来自文档的示例

代码语言:javascript
复制
from sanic import response

@app.route('/json')
def handle_request(request):
    return response.json(
        {'message': 'Hello world!'},
        headers={'X-Served-By': 'sanic'},
        status=200
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41146313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档