摘要:
0. 前言 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。Sqlalchemy 就是一种 ORM 框架 阅读全文
摘要:
0. 前言 最近是使用 SQLAlchemy 框架作为一个 ORM 框架,现对其做简单整理 1. 创建 Session 说到数据库,就离不开 Session。Session 的主要目的是建立与数据库的会话,它维护数据库的连接,也是数据库查询(Query)的一个入口 在SQLAlchemy中,数据库的 阅读全文
摘要:
0. 前言 通过 Django 编写 HTTP 接口时,我们需要指定 URL、Model 和 Views 函数(或者指定 RESTBaseView 对象解析参数和编写逻辑) 编写逻辑时的基本思路就是解析 Request 对象 → 逻辑处理 → 返回 Response 对象 RESTBaseView 阅读全文
摘要:
装饰器是 Python 的一个重要部分,也是比较难理解和使用好的部分。下面对装饰器做一下简单整理 1. 前言 装饰器实际上是应用了设计模式里,装饰器模式的思想: 在不概念原有结构的情况下,添加新的功能 类似于我们穿不同的衣服,可以先穿一件衬衫,再穿一件毛衣,再穿一件羽绒服 但是毛衣不会影响羽绒服,羽 阅读全文
摘要:
0. 前言 Marshmallow 是一个用于将 ORM 对象与 Python 原生数据类型之间转换的库。实现 object → dict、object → list、string → dict 和 string → list 等功能 1. Schema 实现一个 object 和 json 之间的 阅读全文
摘要:
1. 理解 class 对于 class 来说,表示一个代码块规定了实例化后的 object 的属性和方法 但是在 Python 中,class 本身也是对象。定义一个 class,就相当于在内存中实例化了一个名为 className 的对象 作为一个对象,因此具备以下能力: 赋值给一个变量 对其拷 阅读全文
摘要:
1. 源码阅读 整个包实现原理基于令牌桶算法:随时间以 1/r 个令牌的速度向容积为 b 个令牌的桶中添加令牌,有请求就取走令牌,若令牌不足则不执行请求或者等待 Allow 方法的调用链:lim.Allow() bool → lim.AllowN(time.Now(), 1) → lim.reser 阅读全文
摘要:
1. 常用结构体 Duration:type Duration int64,时间长度,对应单位包括 Nanosecond(纳秒)、Microsecond(微妙)、Millisecond(毫秒)、Second(秒)、Minute(分钟)和 Hour(小时) Time:时间点 2. 常用函数 time. 阅读全文
摘要:
0. 前言 golang 的 Context 包,是专门用来简化对于处理单次请求但是涉及到多个 goroutine 之间与请求域的数据、取消信号、截止时间等相关操作,这些操作可能涉及多个 API 调用 常见场景如一个微服务后台,各个 RPC 接口逐个调用形成一个调用链,某一时刻超时,要通知调用链上所 阅读全文
摘要:
0. 前言 最近用到了 regexp 包,下面整理下正则表达式相关用法 参考 基础知识 - Golang 中的正则表达式 和 Golang regexp包中的函数和方法 做了汇总 1. 正则表达式 1.1 单一字符 1.2 复合 1.3 重复 1.4 分组 1.5 位置标记 1.6 转义序列 1.7 阅读全文
摘要:
前言 最近用到了一些 Golang 异步编程的地方,感觉 Golang 相对于其他语言(如 Java)对多线程编程的支持非常大,使用起来也非常方便。于是决定了解一下 Goroutine 的底层原理。 Goroutine 本质是协程,是实现并行计算的核心。只需要在对应的函数前加上 Go 关键词即可异步 阅读全文
摘要:
类型 18个基本类型:bool、string、rune、byte、int、uint、int8、uint、int8、int16、uint16、int32、uint32、int64、uint64、float64、complex64、complex128 7个复合类型:array、struct、funct 阅读全文