摘要: 蓝图 蓝图是可用于在应用程序内进行子路由的对象。蓝图定义了添加路由的类似方法,不是向应用程序实例添加路由,而是以灵活且可插入的方式向应用程序注册。 蓝图对于大型应用程序特别有用,在大型应用程序中,您的应用程序逻辑可以分为几个组或职责范围。 简单示例 下面显示了一个非常简单的蓝图,该蓝图在应用程序的根 阅读全文
posted @ 2021-05-13 21:30 fhkankan 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 扩展 参考awesome-sanic 阅读全文
posted @ 2021-05-13 17:13 fhkankan 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 流媒体 请求流 Sanic允许您按流获取请求数据,如下所示。请求结束时,await request.stream.read()返回None。只有post,put和patch装饰器具有stream参数。 from sanic import Sanic from sanic.views import C 阅读全文
posted @ 2021-05-13 16:52 fhkankan 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 路由 路由允许用户为不同的URL端点指定处理程序功能。 基本路线如下所示,其中app是Sanic类的实例: from sanic.response import json @app.route("/") async def test(request): return json({ "hello": 阅读全文
posted @ 2021-05-13 16:48 fhkankan 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 配置 任何相当复杂的应用程序都需要未包含在实际代码中的配置。对于不同的环境或安装,设置可能会有所不同。 基础 Sanic将配置保存在应用程序对象的config属性中。配置对象仅仅是可以使用点符号或字典进行修改的对象: app = Sanic('myapp') app.config.DB_NAME = 阅读全文
posted @ 2021-05-13 16:11 fhkankan 阅读(521) 评论(2) 推荐(0) 编辑
摘要: 请求数据 当端点接收到HTTP请求时,将向路由功能传递一个Request对象。 请求对象属性 以下变量可以作为请求对象的属性访问 属性 类型 说明 json any json的body类型 args dict 查询字符串的字典形式 query_args list 查询字符串的列表形式 raw_arg 阅读全文
posted @ 2021-05-13 13:24 fhkankan 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 日志 Sanic允许您基于python3日志记录API对请求执行不同类型的日志记录(访问日志,错误日志)。如果要创建新配置,则应具有有关python3日志记录的一些基本知识。 快速开始 使用默认设置的一个简单示例如下所示: from sanic import Sanic from sanic.log 阅读全文
posted @ 2021-05-13 13:21 fhkankan 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 响应 使用sanic.response模块中的函数来创建响应。 Plain Text from sanic import response @app.route('/text') def handle_request(request): return response.text('Hello wor 阅读全文
posted @ 2021-05-13 13:19 fhkankan 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 示例 本文档的这一部分是示例代码的简单集合,可以帮助您快速开始应用程序开发。这些示例大多数都是经过分类的,并为您提供了Sanic存储库中的工作代码示例的链接。 基础示例 示例的这一部分是代码的集合,这些代码提供了sanic应用程序的简单用例示例。 简单Apps 一个简单的sanic应用程序,具有单个 阅读全文
posted @ 2021-05-13 11:46 fhkankan 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 中间件和监听器 中间件是在对服务器的请求之前或之后执行的功能。它们可用于修改对用户定义的处理函数的请求或响应。 此外,Sanic还提供了侦听器,使您可以在应用程序生命周期的各个阶段运行代码。 中间件 中间件有两种类型:请求和响应。两者都使用@app.middleware装饰器声明,装饰器的参数是一个 阅读全文
posted @ 2021-05-13 11:28 fhkankan 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 异常 异常可以从请求处理程序中引发,并由Sanic自动处理。异常将消息作为第一个参数,也可以将状态代码作为HTTP响应传递回去。 抛出异常 要抛出异常,只需从sanic.exceptions模块引发相关异常。 from sanic.exceptions import ServerError @app 阅读全文
posted @ 2021-05-13 11:23 fhkankan 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 自定义通讯协议 注意 这是高级用法,大多数读者将不需要这种功能。 您可以通过指定自定义协议来更改Sanic协议的行为,该协议应该是asyncio.protocol的子类。然后可以将该协议作为关键字参数protocol传递给sanic.run方法。 定制协议类的构造函数从Sanic接收以下关键字参数。 阅读全文
posted @ 2021-05-13 11:19 fhkankan 阅读(101) 评论(0) 推荐(0) 编辑
摘要: Cookies Cookie是保存在用户浏览器中的数据。Sanic可以读取和写入cookie,它们都存储为键值对。 警告 客户可以自由更改Cookies。因此,您不能仅将登录信息之类的数据原样存储在cookie中,因为它们可以由客户端自由更改。为确保客户端不会伪造或篡改您存储在Cookie中的数据, 阅读全文
posted @ 2021-05-13 11:12 fhkankan 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 版本控制 您可以将version关键字传递给路由装饰器或蓝图初始化器。这将导致v {version} url前缀,其中{version}是版本号。 每个路由 您可以将版本号直接传递给路由。 from sanic import response @app.route('/text', version= 阅读全文
posted @ 2021-05-13 11:11 fhkankan 阅读(54) 评论(0) 推荐(0) 编辑
摘要: Debug模式 启用Sanic的调试模式时,Sanic将提供更详细的日志记录输出,默认情况下将启用自动重新加载功能。 警告 Sanic的更多调试功能会减慢服务器的性能,因此建议仅在开发环境中启用它。 配置debug模式 通过设置debug模式,将输出Sanic的更详细的输出,并激活自动重新加载器。 阅读全文
posted @ 2021-05-13 11:06 fhkankan 阅读(245) 评论(0) 推荐(0) 编辑
摘要: Sockets Sanic可以使用python套接字模块来容纳非IPv4套接字。 IPv6示例: from sanic import Sanic from sanic.response import json import socket sock = socket.socket(socket.AF_ 阅读全文
posted @ 2021-05-13 11:05 fhkankan 阅读(71) 评论(0) 推荐(0) 编辑
摘要: SSL示例 (可选)传入SSLContext: import ssl context = ssl.create_default_context(purpose=ssl.Purpose.CLIENT_AUTH) context.load_cert_chain("/path/to/cert", keyf 阅读全文
posted @ 2021-05-13 11:03 fhkankan 阅读(99) 评论(0) 推荐(0) 编辑
摘要: WebSocket Sanic在websocket之上提供了易于使用的抽象。Sanic支持websocket版本7和8。 设置WebSocket from sanic import Sanic from sanic.response import json from sanic.websocket 阅读全文
posted @ 2021-05-13 11:00 fhkankan 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 部署 Sanic有三个服务选项:内置web服务器、ASGI web服务器或gunicorn。 Sanic自己的web服务器是最快的选择,它可以安全地在互联网上运行。不过,将Sanic放在反向代理后面也是非常常见的,如Nginx部署中所示。 Snaic webserver 定义sanic.Sanic实 阅读全文
posted @ 2021-05-13 10:56 fhkankan 阅读(1198) 评论(0) 推荐(0) 编辑
摘要: 概述 参考 文档地址 Sanic是Python 3.6以上版本的网络服务器和网络框架,旨在快速发展。它允许使用Python 3.5中添加的async / await语法,这使您的代码无阻塞且快速。 该项目的目标是提供一种简单的方法来启动和运行高性能HTTP服务器,该服务器易于构建,扩展和最终扩展。 阅读全文
posted @ 2021-05-13 10:34 fhkankan 阅读(122) 评论(0) 推荐(0) 编辑