08 2021 档案

摘要:Model,QuerySet除了提供了查询操作外,还提供了对数据和数据库进行操作的方法 一、先看Model 1、save:插入或更新数据,即,当数据不存在时,新建,当数据已存在时,更新 没有的数据,插入 2、create:创建单条数据,并返回数据,由源码看,其实也是调的save方法 3、bulk_c 阅读全文
posted @ 2021-08-31 22:44 向前走。 阅读(1322) 评论(0) 推荐(0) 编辑
摘要:有时候需要进行复杂的查询,但是仅仅靠QuerySet提供的那些方法是完全不够的,tortoise-orm提供了Q对象,用于做复杂的查询 from tortoise.query_utils import Q 1、与:& 若不写连接符,则默认为and 2、或:| 3、非:~ 阅读全文
posted @ 2021-08-30 21:53 向前走。 阅读(998) 评论(0) 推荐(0) 编辑
摘要:数据 由于在创建模型的时候,是继承的tortoise.Model,看看tortoise.Model都提供了什么方法,如果发现又不满足使用场景的情况,再来修改或者补充 看看有用的方法 1、filter:使用给定的过滤条件创建 QuerySet,即查询满足指定条件的数据 2、exclude:使用给定的排 阅读全文
posted @ 2021-08-30 21:31 向前走。 阅读(2195) 评论(0) 推荐(0) 编辑
摘要:一、ForeignKeyField:外键关系字段,此字段表示与另一个模型的外键关系 1、model_name: str 已定义的模型的名称,必传2、related_name: 外键关系名称3、on_delete: str 默认"CASCADE" field.CASCADE:表示如果相关模型被删除,模 阅读全文
posted @ 2021-08-26 22:15 向前走。 阅读(2054) 评论(0) 推荐(0) 编辑
摘要:在 tortoise-orm 中定义字段,需要使用 tortoise-orm提供的fields模块下的字段 1、BigIntField:大整数字段,长度支持64位,除了支持继承自Field的参数外,还支持pk(primary key),指定是否为主键 constraints属性:返回具有以 Pyda 阅读全文
posted @ 2021-08-25 22:15 向前走。 阅读(2036) 评论(0) 推荐(0) 编辑
摘要:在 tortoise.fields.base 中,先定义了 _FieldMeta,然后定义了 Field 继承 _FieldMeta,然后所有字段类型都继承 Field 一:支持的参数 Field参数: source_field: str 可用此参数指定字段为其他名字,而不使用定义的字段变量名作为表 阅读全文
posted @ 2021-08-25 21:29 向前走。 阅读(776) 评论(0) 推荐(0) 编辑
摘要:在定义了模型,或者对模型进行了一些修改过后,是不会直接映射到数据库,并修改表的,这个时候就需要使用数据看迁移工具,tortoise-orm匹配的数据库迁移工具为aerich aerich没有官网,只能在GitHub上找到源码,源码上有简略的使用方法:https://github.com/tortoi 阅读全文
posted @ 2021-08-23 22:54 向前走。 阅读(2038) 评论(0) 推荐(0) 编辑
摘要:Tortoise ORM 是异步的ORM,设计灵感来自 Django,官网:https://tortoise.github.io/ Tortoise ORM 目前支持以下数据库 : 1、PostgreSQL >= 9.4,使用asyncpg 2、SQLite,使用aiosqlite 3、MySQL/ 阅读全文
posted @ 2021-08-23 22:52 向前走。 阅读(2444) 评论(0) 推荐(0) 编辑
摘要:在doc模块下,由源码可见,显示封装了一个Field父类,然后定义了一些具体的数据类型来继承Field类,所以继承的子类都支持Field定义的参数 使用示例 1、整数,要标注为整数,可以使用int或者doc.Integer 2、浮点数,要标注为浮点数,可以使用float或者doc.Float 3、字 阅读全文
posted @ 2021-08-14 22:00 向前走。 阅读(581) 评论(0) 推荐(0) 编辑
摘要:sanic-openapi除了可以使用app.config来指定一些基础的配置外,sanic-openapi.doc还提供了很多装饰器用法的配置,导入doc模块 1、exclude(True):用此装饰器修饰的路由将不会显示在Swagger中 2、summary():添加接口的概述 3、descri 阅读全文
posted @ 2021-08-14 21:24 向前走。 阅读(748) 评论(0) 推荐(0) 编辑
摘要:1、设置文档title:API_TITLE 2、设置版本:API_VERSION 3、配置系统描述:API_DESCRIPTION 4、配置服务条款:API_TERMS_OF_SERVICE 5、配置邮件联系方式:API_CONTACT_EMAIL 6、配置许可证:API_LICENSE_NAME 阅读全文
posted @ 2021-08-12 22:24 向前走。 阅读(712) 评论(0) 推荐(0) 编辑
摘要:sanic-openapi是Sanic的作者编写的一个插件,专用于生成接口文档,在编写了接口后无需再去编写接口文档,只需要用sanic-openapi生成Swagger 文档即可 使用手册:https://sanic-openapi.readthedocs.io/en/stable/sanic_op 阅读全文
posted @ 2021-08-12 21:36 向前走。 阅读(2214) 评论(0) 推荐(0) 编辑
摘要:Tortoise-ORM 也是个非常优秀的异步orm框架 官网:https://tortoise-orm.readthedocs.io/en/latest/ 官网提供的与sanic结合使用的示例:https://tortoise-orm.readthedocs.io/en/latest/exampl 阅读全文
posted @ 2021-08-11 22:12 向前走。 阅读(1726) 评论(0) 推荐(0) 编辑
摘要:Sanic是异步库,想要发挥其强大的性能,当需要使用第三方库的时候,就需要使用异步的库,在python中,异步orm较为常见的就两个可,一个SQLAlchemy,一个Tortoise-ORM SQLAlchemy 在1.4版本之后,已经支持异步了,既然要用异步,那同步库的PyMYSQL肯就就不能满足 阅读全文
posted @ 2021-08-11 21:52 向前走。 阅读(4181) 评论(0) 推荐(0) 编辑
摘要:安装pyjwt:pip install pyjwt pyjwt的使用,主要是一个加密,一个解密 token校验代码 在视图中使用 1、登录,获取token 2、用token请求需校验token的接口 auth: from functools import wrapsimport jwtfrom sa 阅读全文
posted @ 2021-08-09 22:13 向前走。 阅读(1520) 评论(0) 推荐(0) 编辑
摘要:由于Sanic是异步框架,所以没办像flask一样提供一个全局的Request对象,但是Sanic提供了一个自定义上下文的功能,只需要指定ctx即可 一、Sanic自带的上下文管理器 由源码看,当没有指定ctx时,Sanic会默认使用 SimpleNamespace() 进行实例化 使用示例,在中间 阅读全文
posted @ 2021-08-09 22:12 向前走。 阅读(1673) 评论(0) 推荐(0) 编辑
摘要:一:中间件 中间件是在请求服务器之前或之后执行的功能。它们可以用来在请求到视图函数之前修改请求参数,视图函数响应之后处理响应数据,中间件中只能做数据处理,若中间件修饰的函数中有返回操作,则会直接中断返回给用户中间件有两种类型:请求和响应。两者都使用 @app.middleware来修饰,参数只支持字 阅读全文
posted @ 2021-08-08 22:08 向前走。 阅读(1063) 评论(0) 推荐(0) 编辑
摘要:异常可以从请求处理程序中抛出,并由Sanic自动处理。异常将消息作为其第一个参数,也可以将状态代码返回到HTTP响应中。 Sanic提供了exceptions,里面已经内置了许多常见异常 Sanic源码可见,先是基于Exception封装了一个SanicException,然后再基于SanicExc 阅读全文
posted @ 2021-08-08 16:30 向前走。 阅读(1007) 评论(0) 推荐(0) 编辑
摘要:一、类视图 基于类的视图只是实现对请求的响应行为的类。它们提供了一种在同一端点划分不同HTTP请求类型处理的方法。可以为端点分配一个基于类的视图,而不是定义和修饰三个不同的处理程序函数(每个端点支持的请求类型对应一个处理程序函数)。 基于类的视图需继承 HTTPMethodView . 然后,可以为 阅读全文
posted @ 2021-08-08 15:26 向前走。 阅读(561) 评论(0) 推荐(0) 编辑
摘要:在进行开发的时候,可能会有很多个模块,比如用户模块、商品模块,这些个模块互相之间不依赖,各自有各自的一些配置、属性、静态资源,这种情况就可以使用蓝图,即每一个模块都可以用蓝图声明路由app,然后把每个蓝图视为主app的子app来注册,这样就能实现分模块单独管理,模块之间的资源和配置互不影响 一、声明 阅读全文
posted @ 2021-08-08 14:39 向前走。 阅读(1152) 评论(0) 推荐(0) 编辑
摘要:一、Sanic.url_for,支持的参数也是挺多,但是实际使用过程中,使用url_for一般只用于构建路由 1、使 url_for 生成路由 在Sanic中,可以使使用 url_for 根据终结点来生成路由,这样就不用关心改代码时路由有没有被改,只要函数名没被改就行 使用时要记住的其他事项 url 阅读全文
posted @ 2021-08-06 23:01 向前走。 阅读(1033) 评论(0) 推荐(1) 编辑
摘要:一、响应cookie 响应cookie也可以直接设置为字典,以下是可用key 二、从请求参数中获取cookie 三、删除cookie 阅读全文
posted @ 2021-08-06 22:47 向前走。 阅读(492) 评论(0) 推荐(0) 编辑
摘要:在Sanic中,提供了一个response对象,用于构造响应数据 在response中,BaseHTTPResponse作为基类用于构建响应对象 由源码可见,对于json 的序列化,会优先尝试导入ujson.dumps,导入失败时会导入json.dumps 然后用HTTPResponse继承Base 阅读全文
posted @ 2021-08-06 08:56 向前走。 阅读(918) 评论(0) 推荐(1) 编辑
摘要:在Sanic中,要想获取请求对象,需要在定义函数时声明一个参数来接收,一般取名为request request支持的属性 1、路径参数 在路由定义中使用 <参数名> 来定义,然后在函数中接收此参数即可 2、查询字符串参数 3、json 4、form 5、files 6、headers、cookie 阅读全文
posted @ 2021-08-06 08:53 向前走。 阅读(813) 评论(0) 推荐(0) 编辑
摘要:支持的配置项 Sanic支持 Python文件、字典、其他类型的自定义对象 三种方式加载配置 一、Python文件:Sanic.update_config() 二、字典:Sanic.update_config() 三、其他类型的自定义对象 注:此时更新的config,其实就是实例化Sanic的时候指 阅读全文
posted @ 2021-08-06 08:52 向前走。 阅读(708) 评论(0) 推荐(0) 编辑
摘要:在运行服务器的时候,用的是Sanic.run()方法,那么run方法,支持指定哪些参数呢 host: str 主机地址,默认为127.0.0.1port: int 运行的端口,默认为8000 debug: bool 是否启用启用调试模式,调试模式将减慢服务器速度,默认False auto_reloa 阅读全文
posted @ 2021-08-06 08:50 向前走。 阅读(756) 评论(0) 推荐(0) 编辑
摘要:Sanic声明接口有三种形式 一:用Sanic.route()方法来声明接口信息,如下为源码中route的参数 uri: str 接口地址,若不是以"/"开头,代码中会自动加"/" methods: list或元组,内部为字符串的请求方法,由代码中可见,代码会自动统一转大写,当此字段没有指定时,默认 阅读全文
posted @ 2021-08-06 08:49 向前走。 阅读(1122) 评论(0) 推荐(1) 编辑
摘要:在使用Sanic的时候,需要先实例化一个Sanic对象,那么这个对象支持哪些配置呢 以下是从源码中获取到的参数 name: str 当前实例化的名字,不冲突即可config: dict 指定配置 ctx: 对象 类似于flask的g对象 router: 指定路由对象,若没有指定,则取默认的 sani 阅读全文
posted @ 2021-08-06 08:47 向前走。 阅读(936) 评论(0) 推荐(0) 编辑
摘要:Sanic是当下最高性能的 Python Web 框架,没有之一,如果有flask开发经验,看懂Sanic毫无压力,虽然Sanic的生态并不强大,但是完全也足够用了 官方英文文档:https://sanic.readthedocs.io/en/stable/社区提供的中文文档:https://san 阅读全文
posted @ 2021-08-06 08:46 向前走。 阅读(6260) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示