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开发之旅吧!

python框架sanic_Python Web框架Sanic框架初识相关推荐

  1. python web api 自动化测试_基于Python + requests 的web接口自动化测试框架

    之前采用JMeter进行接口测试,每次给带新人进行培训比较麻烦,干脆用python实现,将代码和用例分离,易于维护. 项目背景 公司的软件采用B/S架构,进行数据存储.分析.管理 工具选择 pytho ...

  2. Python全栈 Web(Django框架、模板继承、模型)

    模板的继承: 语法: 在父模板中 必须要标识出那些内容在子模板中允许为修改 {% block 名称 %} {% endblock %} 在子模板中 指定继承自那个父模板 {% extends '父模板 ...

  3. 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Flask框架-317人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和Dj ...

  4. 它号称 Python 中性能最高的异步 Web 框架:超详细 Sanic 入门指南!

    △点击上方"Python猫"关注 ,回复"2"加入交流群 作者:古明地盆 来源:https://www.cnblogs.com/traditional/p/14 ...

  5. 使用 Sanic 框架进行 Python Web 开发

    asyncio 模块 作为一款异步 Python 3.7+ web 框架,Sanic 最基本的构建块是 Python 标准库中的 asyncio 模块. 2014 年初发布的 Python 3.4 是 ...

  6. 一文读懂Python web框架和web服务器之间的关系

    我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...

  7. Python 最快Web框架

    点上方"菜鸟学Python",选择"星标" 463篇原创干货,第一时间送达 作者:ConnorZhang 链接:https://juejin.cn/post/6 ...

  8. Python之路--WEB框架本质

    一.本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8im ...

  9. python web-2019年Python Web五大主流框架

    我们都知道风靡一时的Python语言作为人工智能战场上主要使用的枪外,还被广泛应用在Web开发.游戏开发.人工智能.云计算开发.大数据开发.数据分析.科学运算.爬虫.自动化运维.自动化测试等领域,其实 ...

最新文章

  1. python爬虫经典教程-python爬虫经典例子有哪些
  2. 图解NHibernate项目框架
  3. P4051-[JSOI2007]字符加密【SA】
  4. HDU3930(离散对数与原根)
  5. 说说 Python TestCase 中的断言方法
  6. 蓝桥杯 ADV-88 算法提高 输出正反三角形
  7. git clone指定分支到本地
  8. 推荐系统中的矩阵分解详解
  9. java做校园一卡通技术_java写的简单校园卡管理系统
  10. Jmeter接口测试及接口性能测试
  11. 微信如何自动搜索精准号码添加好友?导入软件完成自动加人
  12. 戴尔笔记本linux不能开机启动,戴尔笔记本bios设置开机启动项图解
  13. UI设计评审度量评价指导
  14. 俄罗斯一法院对谷歌处以72亿卢布罚款
  15. SPRD Android12 设备解锁
  16. 如何在iPhone手机上安装ipa(应用安装包)
  17. linux中dd命令详解,Linux基础知识之dd命令详解
  18. tensorflow2: attention机制实现
  19. 中文垂直搜索引擎、行业搜索引擎大全(最新计137家) (转贴)
  20. 苏嵌//郑艳秋//2018.7.12

热门文章

  1. ManjaroLinux扩展显示器,连接显示器。
  2. 打印机服务无法启动 错误代码1068
  3. android 视频剪切,安卓手机视频剪辑app 将视频某一段截取下来,或者删除视频中某一部分...
  4. 豪宅成交频频,上海楼价再创新高
  5. ZigBee无线温度传感网络设计
  6. delphic oracle下载,Chemical Oracle
  7. 51单片机控制舵机,舵机不动的定时器原因
  8. My MPC·暴风影音 5.00_Stable
  9. 使用chalk时颜色不变的问题解决
  10. 构建ChatGPT 镜像,并将其部署到 Docker 容器中。