博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解Python中Sanic与async/await
阅读量:348 次
发布时间:2019-03-04

本文共 1079 字,大约阅读时间需要 3 分钟。

  • Python异步编程演化

    Python版本 关键字 作用
    3.4 asyncio 支持异步IO的标准库
    3.5 async/await 语法糖,增加异步编程友好度
    3.6 稳定版asyncio
  • Sanic

    Sanic是一个支持async/await语法的异步无阻塞框架。

    Sanic使用uvloop作为asyncio的事件循环:

    • 关于uvloop参见《理解Sanic中的uvloop》;

    • 关于事件循环参见《理解Python异步中的事件循环(asyncio管理事件循环)》;

    • 关于结构的具体步骤,参见2;

    Sanic处理函数必须要使用async def语法定义,因为他们是异步函数

  • Sonic Request对象

    包含了客户端(浏览器)发过来的HTTP请求的各类数据。包含以下属性:

    属性 使用方式 意义
    json request.json 当客户端POST来的数据是json格式时,访问json数据
    args request.args 查询字符串变量,即URL中问号?机器后面的部分
    files 字典 拥有name、body和type的文件对象的字典
    form 字典 以POST方式传递的form变量
    body 字节串 POST的原始数据

    其它还有:headersmethodipportsocketappurlschemehostpathquery_stringuri_templatetoken

    request对象是web应用要处理的对象,它包含了客户端(浏览器)的请求数据,通过它的各种属性来访问这些请求数据。

  • sanic.response子模块

    用于生成HTTP响应,可以生成纯文本(Plain Text,response.text())、HTML、JSON、文件(File)、数据流(Streaming)、文件流(File Streaming)、重定向(Redirect)、生数据(Raw)。

    所有返回的响应都是一个HTTPResponse类(或StreamingHTTPRsponse类),两者都派生自BaseHTTPResponse类。

  • 关于路由

  • url_for方法建立URL

    基于处理函数名来生成URL,类似eval对字符串的处理,当然并不一样。

  • WebSocket路由

    通过@app.websocket装饰器或app.add_websocket_route方法定义。

    websocekt路由的处理函数有两个参数:request、websocket协议对象(有send、recv两个方法)

  • Reference

  1. 使

转载地址:http://uzge.baihongyu.com/

你可能感兴趣的文章