sanic官方文档解析之下载和Configuration
1,sanic框架是做什么的?
- sanic的官方网址:https://sanic.readthedocs.io/en/latest/
- sanic框架是一个类似于flask框架的在Python3.5以上版本的文本服务器,他能够快速的编写,它是通过惊人的开发效率完成开发,希望通过这篇文章得到激励
sanic框架的理念是:简单,高效
sanic的应用如上图,类似于flask.
2,下载使用sanic框架
- 在下载之前要确保有pip并且版本是最新的,Python版本是3.5以上的版本,Sanic框架使用的是全新的异步非阻塞框架,因此,早期的Python版本不能运行.
- 下载Sanic: pip3 install sanic
- 我在下载的时候遇到一个错误 "
error: Microsoft Visual C++ 14.0 is required...
"
于是就得去微软官网下载visualcppbuildtools_full.exe,但是安装程序需要4GB的空间,,so官网下载很慢!百度有别人下好的包,拿过来安装上就好了(傻瓜式安装即可)
然后再pip3 下载就好了
在安装Sanic的时候不需要uvloop或者ujson,你可以同时提供这俩作为环境变量,使用真确的字符串('y', 'yes', 't', 'true', 'on', '1'),并且设置()SANIC_NO_X
(X
= UVLOOP
/UJSON
)为true,那样将会停止特征的下载.
- SANIC_NO_UVLOOP=true SANIC_NO_UJSON=true pip3 install sanic
2,创建一个Sanic文件:
from sanic import Sanic
from sanic.response import json # 实例化一个Sanic对象
app = Sanic() # 服务开启的路由
@app.route("/")
async def test(request):
return json({"hello": "Sanic"}) # 指定开启服务的主机和端口
if __name__ == '__main__':
app.run(host="127.0.0.1", port=8000)
3,运行这个py文件即可(右击运行 Python3 main.py)
4, 查看浏览器:在浏览器的网址输入相应的ip和端口即可,就会收到{"hello":"Sanic"}
5,Sanic的配置相关
任何合理的复杂的应用,都需要配置,,但是不会变成实际运行的代码,设置将会根据不同的环境和下载方式而改变(便于代码的维护)
Sanic在应用项目中保留配置的属性,配置属性仅仅是一个名目的文件,是项目相关点的表示,就好比一个字典的目录
Sanic的配置实际上就是一个字典,你可以用这个字典更新方法为了方便的一次设置多个值.(如上式是数据库的配置)
通常来说,按照惯例配置的参数的字母要全部大写,这种方法描述在加载下,才会被认为是配置的参数
6,怎样加载项目的相关配置
- 第一种方法是:从环境变量中导入
- 任何用SANIC_为前缀定义的变量,都会被应用到sanic的配置中,比如:在settings中SANIC_REQUEST_TIMEOUT将会被自动地加载到应用中,且会向在请求超时提供配置参数,你可以通过不同的前缀来应用到sanic中
app = Sanic(load_env="MYAPP_")
在超过变量即将会变成MYAPP_REQUEST_TIMEOUT,如果你想禁用加载环境变量的方法,你可以将load_env=False
- 第二种从模块或者包中导入配置参数
假如项目有很多的配置参数,,最好写一个配置文件挥着包来导入到实例化的sanic的文件中,也可以写一个类
- 第三种方法,是将配置文件导入
通常你将会从一个文件中加载配置,那样是基于不是分布式的应用的时候,你可以使用from_pyfile(/path/to/config_file)从文件中记载配置参数,然而,这样是需要参数知道配置路径,因此代替你指定的配置文件的额位置,在环境变量中,并且要告诉sanic找到指定的配置文件
配置文件符合Python的文件的规则为了被执行,这就需要你使用任意的逻辑去设立正确的配置,仅仅支持大写字母的参数被添加到配置文件中,大部分通常包含单一的键值.
- 内置的配置值
当创建sanic应用的时候,超出以上这个表格的参数,是预定很少值可以被超过.
sanic官方文档解析之下载和Configuration的更多相关文章
- sanic官方文档解析之Example(一)
1,示例 这部的文档是简单的示例集合,它能够帮助你快速的启动应用大部分的应用,这些应用大多事分类的,并且提供给ini工作的连接代码: 1.1,基础示例 这部分示例集成了提供简单sanic简单的代码 单 ...
- sanic官方文档解析之Deploying(部署)和Extension(扩展)
1,Deploying(部署) 通过内置的websocket可以很简单的部署sanic项目,之后通过实例sanic.Sanic,我们可以运行run这个方法通过接下来的关键字参数 host (defau ...
- sanic官方文档解析之Custom Protocols(自定义协议)和Socket(网络套接字)
1,Custom Protocol:自定义协议 温馨提示:自定义协议是一个高级用法,大多数的读者不需要用到此功能 通过特殊的自定义协议,你可以改变sanic的协议,自定义协议需要继承子类asyncio ...
- sanic官方文档解析之静态文件和版本
1,静态文件 就向图片文件一样,静态文件和指导性的文件,当通过Sanic服务端用app.static()方法注册的时候,这种方法采用端点url和文件名称获得.这样的文件的指定,将会通过指定的端点访问. ...
- sanic官方文档解析之路由
1,路由,路由相当于一个网址的地址,来确定网址的位置和唯一性 当http://server.url/被允许访问服务器,当最后的"/"通过路由匹配到了业务逻辑处理的函数,将会返回一个 ...
- sanic官方文档解析之logging和request Data
1,sanic的logging: Sanic允许有做不同类型的日志(通过的日志,错误的日志),在基于Python3的日志API接口请求,你必须具备基本的Python3的日志知识,在你如果想创建一个新的 ...
- sanic官方文档解析之Example(二)
1,通过docker部署sanic项目 通过Docker和Docker Compose部署SANIC应用程序是一项很容易实现的任务,下面的示例提供了示例simple_server.py的部署 FROM ...
- sanic官方文档解析之ssl,debug mode模式和test(测试)
1,ssl 示例: 可选择的SSLContent from sanic import Sanic import ssl context = ssl.create_default_context(pur ...
- sanic官方文档解析之streaming(流动,滚动)和class_based_views(CBV的写法)
1,streaming(流媒体) 1.1请求流媒体 Sanic允许你通过流媒体携带请求数据,如下,当请求结束await request.stream.read()就会返回None,仅仅只有post请求 ...
随机推荐
- Python模块安装路径初探
在调用MySQL第三方工具mysqlrplsync是报错 mysqlrplsync --master=checksum:checksum@master_ip:3306 --slave=checksum ...
- vue v-dialogDrag: 弹窗拖拽
Vue.directive('dialogDrag', { inserted:function(el) { const dragDom = el.querySelector('.jsPropupLay ...
- [UOJ#220][BZOJ4651][Noi2016]网格
[UOJ#220][BZOJ4651][Noi2016]网格 试题描述 跳蚤国王和蛐蛐国王在玩一个游戏. 他们在一个 n 行 m 列的网格上排兵布阵.其中的 c 个格子中 (0≤c≤nm),每个格子有 ...
- POJ 1038 Bugs Integrated, Inc. ——状压DP
状态压缩一下当前各格子以及上面总共放了几块,只有012三种情况,直接三进制保存即可. 然后转移的时候用搜索找出所有的状态进行转移. #include <map> #include < ...
- ElasticSearch 中 REST API 详解
本文主要内容: 1 ElasticSearch常用的操作 2 ElasticSearchbulk命令 ES REST API elasticsearch支持多种通讯,其中包括http请求响应服务,因此 ...
- Tengine的concat模块与js、css合并
首先,先走出一个误区 ,下面是tengine-cn邮件列表里的一篇邮件原文:“看了这个例子就了解了,这个所谓的合并请求只是把所有的CSS或JAVASCRIPT请求合并,必须是同一个文件类型的.我开始想 ...
- Laravel 之Composer
Composer是php的依赖管理工具,不是包管理器. 安装方式: (1)Composer-Setup.exe Win操作系统.需FQ (2)composer.phar 通用安装方式.不需要FQ,wi ...
- asp.net MVC最简单的增删查改!(详)
折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Vie ...
- AC日记——租用游艇 洛谷 P1359
题目描述 长江游艇俱乐部在长江上设置了n 个游艇出租站1,2,…,n.游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇.游艇出租站i 到游艇出租站j 之间的租金为r(i,j),1& ...
- (46)C#注册表及读写
启动注册表:regedit 结构: 注册表一共有7个配置单元用regedit只能看到5个 HKEY_CLASSES_ROOT 包含系统上文件类型的细节(.txt,.doc)等.以及使用那些应用程序可以 ...