我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sanic中文文档

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sanic中文文档

入门指南

Install Sanic:python3 -m pip install sanic
example

from sanic import Sanic
from sanic.response import text
app = Sanic(__name__)
@app.route("/")
async def test(request):
    return text('Hello world!')
app.run(host="0.0.0.0", port=8000, debug=True)

路由

路由允许用户为不同的URL端点指定处理程序函数。

demo:

from sanic.response import json
@app.route("/")
async def test(request):
    return json({ "hello": "world" })

url http://server.url/ 被访问(服务器的基本url),最终'/'被路由器匹配到处理程序函数,测试,然后返回一个JSON对象。

请求参数

请求参数

要指定一个参数,可以用像这样的角引号<PARAM>包围它。请求参数将作为关键字参数传递给路线处理程序函数。
demo

from sanic.response import text
@app.route('/tag/<tag>')
async def tag_handler(request, tag):
    return text('Tag - {}'.format(tag))

为参数指定类型,在参数名后面添加(:类型)。如果参数不匹配指定的类型,Sanic将抛出一个不存在的异常,导致一个404页面
demo:

from sanic.response import text
@app.route('/number/<integer_arg:int>')
async def integer_handler(request, integer_arg):
    return text('Integer - {}'.format(integer_arg))
@app.route('/number/<number_arg:number>')
async def number_handler(request, number_arg):
    return text('Number - {}'.format(number_arg))
@app.route('/person/<name:[A-z]+>')
async def person_handler(request, name):
    return text('Person - {}'.format(name))
@app.route('/folder/<folder_id:[A-z0-9]{0,4}>')
async def folder_handler(request, folder_id):
    return text('Folder - {}'.format(folder_id))

请求类型

路由装饰器接受一个可选的参数,方法,它允许处理程序函数与列表中的任何HTTP方法一起工作。
demo_1
from sanic.response import text
@app.route('/post', methods=['POST'])
async def post_handler(request):
    return text('POST request - {}'.format(request.json))
@app.route('/get', methods=['GET'])
async def get_handler(request):
    return text('GET request - {}'.format(request.args))
demo_2
from sanic.response import text
@app.post('/post')
async def post_handler(request):
    return text('POST request - {}'.format(request.json))
@app.get('/get')
async def get_handler(request):
    return text('GET request - {}'.format(request.args))

增加路由

from sanic.response import text
# Define the handler functions
async def handler1(request):
    return text('OK')
async def handler2(request, name):
    return text('Folder - {}'.format(name))
async def person_handler2(request, name):
    return text('Person - {}'.format(name))
# Add each handler function as a route
app.add_route(handler1, '/test')
app.add_route(handler2, '/folder/<name>')
app.add_route(person_handler2, '/person/<name:[A-z]>', methods=['GET'])

url_for

Sanic提供了一个urlfor方法,根据处理程序方法名生成url。避免硬编码url路径到您的应用程序
demo

@app.route('/')
async def index(request):
    # generate a URL for the endpoint `post_handler`
    url = app.url_for('post_handler', post_id=5)
    # the URL is `/posts/5`, redirect to it
    return redirect(url)
@app.route('/posts/<post_id>')
async def post_handler(request, post_id):
    return text('Post - {}'.format(post_id))

Notice:

  • 给url equest的关键字参数不是请求参数,它将包含在URL的查询字符串中。例如:
url = app.url_for('post_handler', post_id=5, arg_one='one', arg_two='two')
# /posts/5?arg_one=one&arg_two=two
  • 所有有效的参数必须传递给url以便构建一个URL。如果没有提供一个参数,或者一个参数与指定的类型不匹配,就会抛出一个URLBuildError
    可以将多值参数传递给url
url = app.url_for('post_handler', post_id=5, arg_one=['one', 'two'])
# /posts/5?arg_one=one&arg_one=two

WebSocket routes(网络套接字路由)

websocket 可以通过装饰路由实现
demo:

@app.websocket('/feed')
async def feed(request, ws):
    while True:
        data = 'hello!'
        print('Sending: ' + data)
        await ws.send(data)
        data = await ws.recv()
        print('Received: ' + data)
        
另外,添加 websocket 路由方法可以代替装饰器

async def feed(request, ws):
    pass
app.add_websocket_route(my_websocket_handler, '/feed')

响应( response )

text

from sanic import response
@app.route('/text')
def handle_request(request):
    return response.text('Hello world!')

HTML

from sanic import response
@app.route('/html')
def handle_request(request):
    return response.html('<p>Hello world!</p>')

JSON

from sanic import response
@app.route('/json')
def handle_request(request):
    return response.json({'message': 'Hello world!'})

File

from sanic import response
@app.route('/file')
async def handle_request(request):
    return await response.file('/srv/www/whatever.png')

Streaming

from sanic import response
@app.route("/streaming")
async def index(request):
    async def streaming_fn(response):
        response.write('foo')
        response.write('bar')
    return response.stream(streaming_fn, content_type='text/plain')

File Streaming

对于大文件,文件和流的组合

from sanic import response
@app.route('/big_file.png')
async def handle_request(request):
    return await response.file_stream('/srv/www/whatever.png')

Redirect

from sanic import response
@app.route('/redirect')
def handle_request(request):
    return response.redirect('/json')

Raw

没有进行编码的响应

from sanic import response
@app.route(‘/raw ’)
def handle_request(request):
return response.raw(‘ raw data ’)

Modify headers or status

要修改头或状态代码,将标题或状态参数传递给这些函数

from sanic import response
@app.route(‘/json ’)
def handle_request(request):
return response.json(
{‘ message ’: ‘ Hello world!’},
headers={‘ X-Served-By ’: ‘ sanic ’},
status=200
)

更多的内容:Sanic 中文文档

  • 静态文件
  • 异常处理
  • 中间件和监听
  • 蓝图
  • 配置
  • 装饰器
  • 请求数据
  • 试图类

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sanic中文文档

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sanic中文文档

入门指南Install Sanic:python3 -m pip install sanicexamplefrom sanic import Sanicfrom sanic.response import textapp = Sanic(_
2023-01-31

sanic异步框架之中文文档

typora-copy-images-to: ipic[TOC]在安装Sanic之前,让我们一起来看看Python在支持异步的过程中,都经历了哪些比较重大的更新。首先是Python3.4版本引入了asyncio,这让Python有了支持异步
2023-01-31

nodejs npm package.json中文文档

简介 本文档有所有package.json中必要的配置。它必须是真正的json,而不是js对象。 本文档中描述的很多行为都受npm-config(7)的影响。 默认值 npm会根据包内容设置一些默认值。"scripts": {"start"
2022-06-04

【Python】官方文档中文版

Python官方文档中文版应该是正在翻译中,现在官网貌似找不到入口,但是可以通过访问进入。在文档url后面加上zh-cn即可。https://docs.python.org/zh-cn/,里面还有很多内容是英文的。  直接找找不到:url中
2023-01-31

Python3.2.3官方文档(中文版)

所属网站分类: 资源下载 > python电子书作者:熊猫烧香链接:http://www.pythonheidong.com/blog/article/66/来源:python黑洞网,专注python资源,python教程,python技术
2023-01-31

MongoDB(五):更新文档、删除文档

1. 更新文档MongoDB的uptade()和save()方法用于将集合中的文档更新。update()方法更新现有文档中的值,而save()方法是传递文档数据替换现有文档。从3.2版本开始,MongoDB提供以下更新集合文档的方法:db.collection
2020-10-28

Golang 函数文档中应包括哪些文档标签?

go 函数文档必需的文档标签:描述标签(用法:提供函数目的和功能的描述)参数标签(用法:为函数参数提供名称和描述)返回值标签(用法:描述函数返回值的类型和含义)错误标签(用法:描述函数返回错误的类型和原因)Go 函数文档中必需的文档标签G
Golang 函数文档中应包括哪些文档标签?
2024-05-01

python全系列官方中文文档

https://docs.python.org/zh-cn/3.7/index.htmlPS:用的时候,修改url上对应的版本,点击左侧导航栏会跳转到对应的原版(英文版)文档
2023-01-31
2024-04-02

Numba 0.44 中文文档校对活动

整体进度:https://github.com/apachecn/n...贡献指南:https://github.com/apachecn/n...项目仓库:https://github.com/apachecn/n...请您勇敢地去翻译和
2023-01-31

python文档

#形式 # 角色#抓取对象内可用的所有属性列表的简单方式import randomprint(dir(random))#['BPF', 'LOG4', 'NV_MAGICCONS
2023-01-31

word文档中怎么嵌入excel文件

您可以按照以下步骤将Excel文件嵌入到Word文档中:1. 打开Word文档,将光标定位到您想要插入Excel文件的位置。2. 在Word菜单栏中选择“插入”选项卡,然后点击“对象”按钮。这将打开“对象”对话框。3. 在“对象”对话框中,
2023-09-29

python文档之查看帮助文档方法

准备使用time模块,使用time模块的localtime函数,使用range类 在已经分清模块,函数,类的情况下开始测试方法一在python命令行输入以下内容help(time) # 很详细的
2023-01-31

Go语言中文文档及教程大全

有志者,事竟成!如果你在学习Golang,那么本文《Go语言中文文档及教程大全》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~Go语言的中文文档与教程资源汇总Go语言是一种由Go
Go语言中文文档及教程大全
2024-04-04

ASP Swagger 文档:API 文档的艺术与科学

ASP Swagger 文档是一种流行的 API 文档工具,它可以帮助开发人员快速轻松地创建和维护 API 文档。本文将介绍 ASP Swagger 文档的优点和缺点,并提供如何在 ASP.NET Core 项目中使用 ASP Swagger 文档的示例。
ASP Swagger 文档:API 文档的艺术与科学
2024-02-05

Java实现向Word文档添加文档属性

这篇文章主要介绍了Java实现向Word文档添加文档属性的相关资料,需要的朋友可以参考下
2023-01-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录