python框架sanic_Python Web框架Sanic框架初识

Sanic是一个高性能的Python Web框架,以其速度和async/await语法特性著称。支持Python 3.5及以上版本,依赖uvloop和ujson提升性能。在Windows上无法使用uvloop,但不影响使用。通过pip安装Sanic,设置环境变量可禁用uvloop和ujson。本文展示了Sanic的简单应用示例,包括启动web服务和响应JSON数据。
摘要由CSDN通过智能技术生成

Sanic 既是一个Python web 服务器,又是一个web框架,它为速度而生。Sanic只支持Python 3.5及其以上版本,允许我们使用

async/await

语法来使我们的代码非阻塞且快速。

通过pip安装Sanic

pip3 install sanic

Sanic 使用

uvloop

ujson

来提高性能。但是,目前Windows上不支持

uvloop

,只能使用

asnycio

原生的事件循环。不过不影响你在Windows上使用Sanic,不用担心这个问题,如果想深入了解 它就去看看Sanic的源码中

server.py

worker.py

。其实,就是在代码中

import uvloop

时处理了

ImportError

异常。

如果你不喜欢这两个包,可以通过设置环境变量

SANIC_NO_UVLOOP=true

SANIC_NO_UJSON=true

来禁止安装它们。

$ export SANIC_NO_UVLOOP=true

$ export SANIC_NO_UJSON=true

$ pip3 install sanic

Sanic简单示例

下面是一个最简单的Sanic web 应用,写入文件

app-simple.py

# file: app-simple.py

from sanic import Sanic

from sanic.response import json

app = Sanic()

@app.route('/')

async def test(request):

msg = {'message': 'Welcom to 猿人学Python'}

return json(msg, ensure_ascii=False)

if __name__ == '__main__':

app.run(host='127.0.0.1', port=8888)

在命令行下运行这个web app:

python3 app-simple.py

运行成功可以看到如下输出:

[2019-03-21 21:29:57 +0800] [10766] [INFO] Goin' Fast @ http://127.0.0.1:8888

[2019-03-21 21:29:57 +0800] [10766] [INFO] Starting worker [10766]

用浏览器或

curl

访问

http://127.0.0.1:8888

,就可以看到输出结果。下面是命令

curl -i http://127.0.0.1:8888

的结果:

HTTP/1.1 200 OK

Connection: keep-alive

Keep-Alive: 5

Content-Length: 39

Content-Type: application/json

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

Sanic示例详解

(1)首先,从

sanic

包导入

Sanic

类,这个是一个Sanic web app (web应用)的入口类。根据我们app的响应数据类型从

sanic.response

导入相应的响应函数,比如本例中的

json()

(2)接着,生成一个

Sanic

的实例

app

(3)

app

实例有两个最常用的方法

app.route()

app.run()

app.route()

是一个装饰器,通过它定义我们app的访问路径(路由),比如本例中的

test()

函数就是用来响应根路径:

/

通过

@app.route()

可以定义整个web app的各种路由。

(4)最后,通过

app.run()

方法来运行app,开启一个web服务。

使用Sanic开发web应用的过程就是这么简单。如果开发复杂的网站,就是不断重复第三步,并使用

blueprint

来使代码结构更清晰。后面,我们将一一介绍使用Sanic开发网站的方方面面。你准备好了吗,让我们一起开启Sanic开发之旅吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值