本文是 从 Flask 到 Gin 系列的第 5 篇。
Python 提供了一个有趣且有用的语法糖:装饰器。使用装饰器,我使用装饰器在 Flask 中实现了鉴权:用户进行数据提交的时候,需要提供一个 TOKEN,这个 TOKEN 如果解密成功,就正常进行 response 相关的逻辑,反之则直接返回 403 错误。
鉴权逻辑就是使用 Python 的装饰器实现的。但 Golang 没有装饰器特性,我会使用 Gin 的中间件机制来代替它。
阅读更多
本文是 从 Flask 到 Gin 系列的第 4 篇。
本篇讲解在 Flask 和 Gin 中使用 MySQL 数据库的相关问题。在 Flask 中,我使用的是 Python 世界中最强大的 ORM 库: SQLAlchemy。在 Gin 的实现中,我选择了 gorm。
阅读更多本文是 从 Flask 到 Gin 系列的第 3 篇。
配置文件是一个项目不可或缺的内容。在 MJP 的 Flask 版本中,我采用 JSON 格式的配置文件。在 Gin 的实现中,我决定保持这种格式不变。下面是一个简化了的配置文件内容。
阅读更多本文是 从 Flask 到 Gin 系列的第 2 篇。
在 MJP 项目中,我使用的是 Python 标准库中的 logging 模块。在 Flask 项目启动的时候,创建一个全局的 logger 对象,对其进行基本的设置。
阅读更多本文是 从 Flask 到 Gin 系列的第 1 篇。
如果写过 C++ 或者 Java,你会觉得在 Golang 中处理 JSON 比前两者要简单很多。但作为习惯了在 Python 中偷懒的我来说,Golang 中的 JSON 用法还是挺难受的。
MJP 是一个 RESTful API 服务,绝大多数 API 返回的都是 JSON 格式。由于 Python 的灵活性和 Flask 的良好封装,编写 MJP 服务时,我在 Flask 中使用 JSON 没有遇到什么困难。MJP 中有一个名为
阅读更多responseto的封装,我使用它来统一输出 JSON Response。本文介绍将这个方法移植到 Gin 的过程。还有两个月就要过年了,想起来今年还有一大任务没有完成,就是掌握一门新的编程语言。所以呢,这两天阅读了大量 Golang 文档,看得我颈椎病都犯了。
阅读更多