python开发中使用哪些高效框架提速
前言
对于已经习惯了 Java 语言中的 SpringBoot+MyBatisPlus+Maven
方式的我而言,在使用 python
开发相关工作辅助工具的时候,自然会想到使用一些类似的框架来实现。原因在于编程思想方法是一致的,变化的只不过是具体实现的语言的不同而已。
因此,基于上述想法,对于 python
开发框架我选择了 FastAPI+SqlAlchemy+PyMySQL+Poetry+Typer
这个组合。
WEB框架
FastAPI https://fastapi.tiangolo.com/zh/,截止2024年7月14日,GitHub上的星达到 7.4万还要多。
而我选择 FastAPI 的更重要的一点,其使用方式与 SpringBoot
相对比较接近,因此上手也变得更加容易。FastAPI非常适合开发api应用,当然了,结合
Jinja
这个模板,你也可以构建传统的WEB网站。而 Jinja2
这个模板,有对应的Java的解析器,因此对于我来说,Jinja
https://jinja.palletsprojects.com/en/3.1.x/ 贯穿于 Python
和 Java
项目,其通用性非常好,能够有效的节省时间,避免资源浪费。
ORM框架
python 开发过程中,不可避免的需要涉及到数据库的操作,因为我们以 MySQL
为主,因此除了跨数据库的兼容性,更看重在MySQL数据库上的实用性。
在没有使用ORM框架之前,数据库的操作使用的 PyMySQL https://pymysql.readthedocs.io/en/latest/index.html 使用起来非常的简单。
而我把 SqlAlchemy
https://www.sqlalchemy.org/ 这个老牌的ORM框架当做是 Java 中的 Hibernate
,更加适合后台框架开发。我直接选择 2.0 及以上的版本。
CLI框架
对于时常开发一些命令行工具而言,我喜欢使用 Typer
https://typer.tiangolo.com/,这也是 FastAPI
团队的杰作,相当于 FastCLI
。参考 User Guide
非常容易上手。
打包框架
对于 python
而言包管理工具非常多,然而在众多的打包工具中 Poetry
是如此的简洁明了,并且在Google内部大量使用。https://python-poetry.org/ 详细的文档及说明是我最喜欢的,通常这意味着该团队对项目极其负责,而不仅仅局限于程序代码。
poetry build -f wheel
和 mvn package
一样简洁命令,然后你就可以将打包后的whl文件发给你的同事,只要 pip install your_app.whl
后就可以正常跑了,超级方便。
日志框架
python 实际上内置日志框架的,只不过其过于简单。loguru https://loguru.readthedocs.io/en/stable/ 是简单性可以和内置框架比肩的日志框架,但是简单的API却有着更为强大的实用功能。