最近在为一个 openeuler 社区开发一个 FAQ (Frequently Asked Questions) 服务模块, 开发语言我选择了 Python. 这也是我第一次使用 Python 编写 Web服务. 之前我一直习惯用 Java 来进行 Web 后端开发, 而我熟悉的一套最基础的 Java Web 技术栈是这样的:
- Spring X: 整个应用的框架, 这里的 'X' 包括 'boot', 'cloud', 等等
- Mybatis/Mybatis-plus: 数据库 ORM
- Mybatis-plus-generator: 逆向工程, 即由数据库生成 DAO. 但它能做的不止于此, 它还可以生成整个目录结构
- fastjson/gson/jackson: json 解析
- Maven/gradle: 依赖管理. 使用一个
pom.xml
/build.gradle
文件使得项目可以快速构建环境
而与之对应的, Python 中的一套最基本的技术栈:
- Flask: 整个应用的框架
- Flask-SQLAlchemy: SQLAlchemy 在 flask 中的插件. 用于数据库 ORM. 相比 Java, 它提供了更灵活的接口, 尤其是对于复杂关系
- flask-sqlacodegen: 针对 SQLAlchemy 的逆向工程
- jsonschema: 用于 json 请求体的校验
- pip: 依赖管理. 对于 Web 开发来说, pip 已经足够了
当然还有其他选择,毕竟工程问题,没有真理。比如同样很火的框架 Django 也很值得一试,但我个人更习惯 flask 的轻量灵活性
Ok~下面是接下来的文章内容,开始阅读吧:
目录: