Skip to content

telecomshy/basic_fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

basic_fastapi

1. 项目结构

  • main.py,项目入口
  • tests,保存所有测试用例,和api模块对应
  • schemas,保存所有pydantic模型
    • base.py,自定义的BaseModel,方便全局进行模型定制
    • 其它schema文件,和api模块对应
  • db,数据库相关
    • base.py,数据engineBase模型类
    • models,保存所有模型类
    • crud,数据库增删改查操作
  • core,核心文件
    • config.py,项目配置
    • dependencies.py,fastapi全局依赖
    • exceptions.py,自定义异常
    • utils.py,工具函数
  • apis,所有接口
    • v1,每个版本一个文件夹,保存所有api模块
    • base.py,路由注册

2. 开发注意事项

  • schema模型字段注释统一使用Constrained Types进行约束,右侧使用Field定制openAPI文档。
  • 内部抛出的异常统一使用自定义的HTTPException,并传入reason关键字参数,表明错误原因,方便前端统一处理。
  • 为了区分pydantic模型和sqlalchemy模型,pydantic模型类统一使用[名词][用途动词][Sche后缀]为类名,如UserRegisterSche ,小写加下划线为变量名,如user_register_sche,sqlalchemy仅使用名词为类名,而在路径函数中,变量名统一加_db后缀。
  • 原则上数据库的crud操作不对返回对象为空进行判断,统一在路径函数中进行判断处理。
  • 有返回的依赖函数统一使用名词做为函数名,如current_user,无返回的依赖函数统一使用动词做为函数名,如check_permission

About

my first fastapi app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published