python框架sanic_Python Web框架Sanic框架初识
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框架初识相关推荐
- python web api 自动化测试_基于Python + requests 的web接口自动化测试框架
之前采用JMeter进行接口测试,每次给带新人进行培训比较麻烦,干脆用python实现,将代码和用例分离,易于维护. 项目背景 公司的软件采用B/S架构,进行数据存储.分析.管理 工具选择 pytho ...
- Python全栈 Web(Django框架、模板继承、模型)
模板的继承: 语法: 在父模板中 必须要标识出那些内容在子模板中允许为修改 {% block 名称 %} {% endblock %} 在子模板中 指定继承自那个父模板 {% extends '父模板 ...
- 师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程
师傅带徒弟学:Python Web之Flask框架-317人已学习 课程介绍 Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和Dj ...
- 它号称 Python 中性能最高的异步 Web 框架:超详细 Sanic 入门指南!
△点击上方"Python猫"关注 ,回复"2"加入交流群 作者:古明地盆 来源:https://www.cnblogs.com/traditional/p/14 ...
- 使用 Sanic 框架进行 Python Web 开发
asyncio 模块 作为一款异步 Python 3.7+ web 框架,Sanic 最基本的构建块是 Python 标准库中的 asyncio 模块. 2014 年初发布的 Python 3.4 是 ...
- 一文读懂Python web框架和web服务器之间的关系
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...
- Python 最快Web框架
点上方"菜鸟学Python",选择"星标" 463篇原创干货,第一时间送达 作者:ConnorZhang 链接:https://juejin.cn/post/6 ...
- Python之路--WEB框架本质
一.本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8im ...
- python web-2019年Python Web五大主流框架
我们都知道风靡一时的Python语言作为人工智能战场上主要使用的枪外,还被广泛应用在Web开发.游戏开发.人工智能.云计算开发.大数据开发.数据分析.科学运算.爬虫.自动化运维.自动化测试等领域,其实 ...
最新文章
- python爬虫经典教程-python爬虫经典例子有哪些
- 图解NHibernate项目框架
- P4051-[JSOI2007]字符加密【SA】
- HDU3930(离散对数与原根)
- 说说 Python TestCase 中的断言方法
- 蓝桥杯 ADV-88 算法提高 输出正反三角形
- git clone指定分支到本地
- 推荐系统中的矩阵分解详解
- java做校园一卡通技术_java写的简单校园卡管理系统
- Jmeter接口测试及接口性能测试
- 微信如何自动搜索精准号码添加好友?导入软件完成自动加人
- 戴尔笔记本linux不能开机启动,戴尔笔记本bios设置开机启动项图解
- UI设计评审度量评价指导
- 俄罗斯一法院对谷歌处以72亿卢布罚款
- SPRD Android12 设备解锁
- 如何在iPhone手机上安装ipa(应用安装包)
- linux中dd命令详解,Linux基础知识之dd命令详解
- tensorflow2: attention机制实现
- 中文垂直搜索引擎、行业搜索引擎大全(最新计137家) (转贴)
- 苏嵌//郑艳秋//2018.7.12
热门文章
- ManjaroLinux扩展显示器,连接显示器。
- 打印机服务无法启动 错误代码1068
- android 视频剪切,安卓手机视频剪辑app 将视频某一段截取下来,或者删除视频中某一部分...
- 豪宅成交频频,上海楼价再创新高
- ZigBee无线温度传感网络设计
- delphic oracle下载,Chemical Oracle
- 51单片机控制舵机,舵机不动的定时器原因
- My MPC·暴风影音 5.00_Stable
- 使用chalk时颜色不变的问题解决
- 构建ChatGPT 镜像,并将其部署到 Docker 容器中。