随笔分类 - Sanic
Sanic是当下最高性能的 Python Web 框架,没有之一
摘要:与flask一样,sanic也有一些自己的扩展,虽然生态不够强大,但基本使用足够了 sanic_session:用于保持会话,当用户登录过后,可以将用户数据存到sanic_session里面,以后就可以从sanic_session里面取用户信息,判断用户是否登录过了 sanic_session官方文
阅读全文
摘要:Model,QuerySet除了提供了查询操作外,还提供了对数据和数据库进行操作的方法 一、先看Model 1、save:插入或更新数据,即,当数据不存在时,新建,当数据已存在时,更新 没有的数据,插入 2、create:创建单条数据,并返回数据,由源码看,其实也是调的save方法 3、bulk_c
阅读全文
摘要:有时候需要进行复杂的查询,但是仅仅靠QuerySet提供的那些方法是完全不够的,tortoise-orm提供了Q对象,用于做复杂的查询 from tortoise.query_utils import Q 1、与:& 若不写连接符,则默认为and 2、或:| 3、非:~
阅读全文
摘要:数据 由于在创建模型的时候,是继承的tortoise.Model,看看tortoise.Model都提供了什么方法,如果发现又不满足使用场景的情况,再来修改或者补充 看看有用的方法 1、filter:使用给定的过滤条件创建 QuerySet,即查询满足指定条件的数据 2、exclude:使用给定的排
阅读全文
摘要:一、ForeignKeyField:外键关系字段,此字段表示与另一个模型的外键关系 1、model_name: str 已定义的模型的名称,必传2、related_name: 外键关系名称3、on_delete: str 默认"CASCADE" field.CASCADE:表示如果相关模型被删除,模
阅读全文
摘要:在 tortoise-orm 中定义字段,需要使用 tortoise-orm提供的fields模块下的字段 1、BigIntField:大整数字段,长度支持64位,除了支持继承自Field的参数外,还支持pk(primary key),指定是否为主键 constraints属性:返回具有以 Pyda
阅读全文
摘要:在 tortoise.fields.base 中,先定义了 _FieldMeta,然后定义了 Field 继承 _FieldMeta,然后所有字段类型都继承 Field 一:支持的参数 Field参数: source_field: str 可用此参数指定字段为其他名字,而不使用定义的字段变量名作为表
阅读全文
摘要:在定义了模型,或者对模型进行了一些修改过后,是不会直接映射到数据库,并修改表的,这个时候就需要使用数据看迁移工具,tortoise-orm匹配的数据库迁移工具为aerich aerich没有官网,只能在GitHub上找到源码,源码上有简略的使用方法:https://github.com/tortoi
阅读全文
摘要:Tortoise ORM 是异步的ORM,设计灵感来自 Django,官网:https://tortoise.github.io/ Tortoise ORM 目前支持以下数据库 : 1、PostgreSQL >= 9.4,使用asyncpg 2、SQLite,使用aiosqlite 3、MySQL/
阅读全文
摘要:在doc模块下,由源码可见,显示封装了一个Field父类,然后定义了一些具体的数据类型来继承Field类,所以继承的子类都支持Field定义的参数 使用示例 1、整数,要标注为整数,可以使用int或者doc.Integer 2、浮点数,要标注为浮点数,可以使用float或者doc.Float 3、字
阅读全文
摘要:sanic-openapi除了可以使用app.config来指定一些基础的配置外,sanic-openapi.doc还提供了很多装饰器用法的配置,导入doc模块 1、exclude(True):用此装饰器修饰的路由将不会显示在Swagger中 2、summary():添加接口的概述 3、descri
阅读全文
摘要:1、设置文档title:API_TITLE 2、设置版本:API_VERSION 3、配置系统描述:API_DESCRIPTION 4、配置服务条款:API_TERMS_OF_SERVICE 5、配置邮件联系方式:API_CONTACT_EMAIL 6、配置许可证:API_LICENSE_NAME
阅读全文
摘要:sanic-openapi是Sanic的作者编写的一个插件,专用于生成接口文档,在编写了接口后无需再去编写接口文档,只需要用sanic-openapi生成Swagger 文档即可 使用手册:https://sanic-openapi.readthedocs.io/en/stable/sanic_op
阅读全文
摘要:Tortoise-ORM 也是个非常优秀的异步orm框架 官网:https://tortoise-orm.readthedocs.io/en/latest/ 官网提供的与sanic结合使用的示例:https://tortoise-orm.readthedocs.io/en/latest/exampl
阅读全文
摘要:Sanic是异步库,想要发挥其强大的性能,当需要使用第三方库的时候,就需要使用异步的库,在python中,异步orm较为常见的就两个可,一个SQLAlchemy,一个Tortoise-ORM SQLAlchemy 在1.4版本之后,已经支持异步了,既然要用异步,那同步库的PyMYSQL肯就就不能满足
阅读全文
摘要:安装pyjwt:pip install pyjwt pyjwt的使用,主要是一个加密,一个解密 token校验代码 在视图中使用 1、登录,获取token 2、用token请求需校验token的接口 auth: from functools import wrapsimport jwtfrom sa
阅读全文
摘要:由于Sanic是异步框架,所以没办像flask一样提供一个全局的Request对象,但是Sanic提供了一个自定义上下文的功能,只需要指定ctx即可 一、Sanic自带的上下文管理器 由源码看,当没有指定ctx时,Sanic会默认使用 SimpleNamespace() 进行实例化 使用示例,在中间
阅读全文
摘要:一:中间件 中间件是在请求服务器之前或之后执行的功能。它们可以用来在请求到视图函数之前修改请求参数,视图函数响应之后处理响应数据,中间件中只能做数据处理,若中间件修饰的函数中有返回操作,则会直接中断返回给用户中间件有两种类型:请求和响应。两者都使用 @app.middleware来修饰,参数只支持字
阅读全文
摘要:异常可以从请求处理程序中抛出,并由Sanic自动处理。异常将消息作为其第一个参数,也可以将状态代码返回到HTTP响应中。 Sanic提供了exceptions,里面已经内置了许多常见异常 Sanic源码可见,先是基于Exception封装了一个SanicException,然后再基于SanicExc
阅读全文
摘要:一、类视图 基于类的视图只是实现对请求的响应行为的类。它们提供了一种在同一端点划分不同HTTP请求类型处理的方法。可以为端点分配一个基于类的视图,而不是定义和修饰三个不同的处理程序函数(每个端点支持的请求类型对应一个处理程序函数)。 基于类的视图需继承 HTTPMethodView . 然后,可以为
阅读全文