软件源码购买一般在哪个网站,哈尔滨建站免费模板,以下哪个域名是做游戏网站的,网络营销管理的起点是今天给大家介绍一个超好用的框架#xff0c;迅速将Python函数变成API#xff0c;它就是最近越来越火的异步Web框架Sanic。 1. Sanic简介
Sanic 是 Python3.7 Web 服务器和 Web 框架#xff0c;旨在提高性能。它允许使用 Python3.5 中添加的async/await语法#xff0c;这使… 今天给大家介绍一个超好用的框架迅速将Python函数变成API它就是最近越来越火的异步Web框架Sanic。 1. Sanic简介
Sanic 是 Python3.7 Web 服务器和 Web 框架旨在提高性能。它允许使用 Python3.5 中添加的async/await语法这使得您的代码有效的避免阻塞从而达到提升响应速度的目的。
看到这里可能你会注意到Sanic的一个显著特性就是高性能由于支持async/await语法它的执行速度会非常的快。
在GitHub上面有一个项目专门是给各种语言的web框架进行压测传送门。
框架每秒处理请求数(64并发)每秒处理请求数(256并发)每秒处理请求数(512并发)starlette (0.20)50,90053,04853,094sanic (22.6)49,14851,76251,300fastapi (0.81)34,19236,86636,668falcon (3.1)22,12221,60621,323flask (2.2)13,94513,83013,661tornado (6.2)13,65514,49613,924django (4.1)8,0017,9408,002
可以看出来Sanic在常用的Python框架中速度是处在领先地位的。
除了高性能之外Sanic一个超方便的地方就是可以部署在生产环境它自带了一个Web服务器可以使用Run方法直接启动应用。当然除此之外您还可以使用支持ASGI(Asynchronous Server Gateway Interface)应用的服务器来部署Sanic或者使用Gunicorn.
在这里还要特别提一下Sanic的社区Sanic的网站拥有完善的中文用户手册该网站是由贡献者自主发起且受官方承认由翻译者进行翻译贡献由Sanic官方团队进行发布很适合英文不太好的小伙伴阅读学习。
社区非常欢迎新的贡献者加入可以在GitHub上面浏览标记好的问题也可以在论坛上进行提问、讨论、解答。
2. 快速上手
首先我们需要先安装Sanic框架。
pip install sanic现在来写一个Hello World
from sanic import Sanic
from sanic.response import textapp Sanic(HelloWorld)app.get(/hello)
async def hello_world(request):return text(Hello, this is my first app in Sancic framework.)
注意必须使用response或继承自response的类作为相应类型。在许多其他框架中它们允许您使用诸如return Hello World或者return {foo:bar}的方式来进行返回但是为了执行这类隐式调用需要在响应流程中的某个位置花费大量的时间来确定您到底想要表达什么意思。因此我们以轻松调用为代价来提升服务的响应速度Sanic会要求您对您的响应进行显式调用。
将上面的代码保存为HelloWorld.py然后用下面命令执行它会调用内置的Web服务器运行程序。
sanic HelloWorld.app如果执行命令的时候遇到下面的报错检查一下是否已经将脚本所在目录(通常为C:\Users%userid%\AppData\Roaming\Python\Python310\Scripts)放在环境变量中。
sanic is not recognized as an internal or external command,
operable program or batch file.命令执行成功会出现下面的提示 从提示中可以看出来sanic模式是运行在生产模式可以通过加启动参数--debug或者--dev用于开发模式。
现在我们来看看效果
使用浏览器打开网址http://localhost:8000/hello。 也可以使用其它API测试工具比如Postman来测试 服务启动的默认端口是8000如果想要修改端口可以使用启动参数或者代码中声明的方式。
启动参数指定端口
sanic HelloWorld.app --host127.0.0.1 --port7890通过代码指定端口
app.run(host127.0.0.1, port7890)run方法支持以下几个关键字参数
参数名称默认值参数说明host127.0.0.1服务器监听的地址。port8000服务器监听的端口。unixNoneUnix套接字文件不是TCP。debugFalse开启DEBUG输出降低服务器性能。sslNoneSSLContext子进程用于 SSL 加密。sockNone服务器接受连接的套接字。workers1要生成的子进程数量。loopNone一个兼容 asyncio 的事件循环。如果没有指定Sanic 会创建自己的事件循环。protocolHttpProtocolasyncio.protocol 子类。access_logTrue启用请求访问日志显著降低服务器速度。
可以使用python HellowWorld.py来运行带有app.run(...)方法的程序。 3. 实现Get和Post接口
Sanic通过注解来定义接口方法用一个简单的加减运算作为例子。
from sanic import Sanic
from sanic.response import text, jsonapp Sanic(HelloWorld)app.get(/add)
async def addXY(request):parameters request.argsx float(parameters[x][0])y float(parameters[y][0])result str(x y)return text(The result is: result)app.post(minus)
async def minusXY(request):parameters request.jsonx float(parameters[x])y float(parameters[y])result x - yreturn json({Result: result})app.run(host127.0.0.1, port7890)
使用Postman调用接口 以上相信您已经对Sanic框架有了一个基本的了解也掌握了快速搭建api接口以及测试的方法。如果大家觉得文章还不错的话欢迎大家三连点赞在看收藏。