quanttide / quanttide-handbook-of-fastapi

量潮FastAPI手册
0 stars 0 forks source link

FastAPI项目结构 #2

Open Guo-Zhang opened 7 months ago

Guo-Zhang commented 7 months ago

两种备选结构:

  1. 以领域划分,基本类似于Django的以Django应用为单位的项目结构。这种结构更适合一个application。

示例:

  1. 以分层划分。ORM Pydantic CRUD router依次,类似Django package的组织方式。这种结构更适合一个package。

示例:

使用 from package.schemas import Dataset

模块命名:

单数user,复数users。我们的习惯是,一个模块通常只包括一个主要类,以方便分别进行Git的跟踪。因此模块用单数比较多,文件夹用复数来表示有多个。

Guo-Zhang commented 7 months ago

不用models而用schemas,主要是和API文档的Schema保持一致,并且也由于FastAPI文档里命名Pydantic模块是schemas。

不使用models而使用orms,是为了方便替换Mongodb等模块时换成odms。

cruds和routers遵循了FastAPI官方文档自己的习惯。