使用FastAPI+SQLAlchemy+Pydantic构建PostgreSQL库遇模块错误求助
问题解决指南
一、ModuleNotFoundError: No module named 'sql_app' 错误修复
- 检查工作目录:运行
uvicorn sql_app.main:app --reload时,终端必须处于sql_app目录的父目录下。比如你的项目结构是project_root/sql_app/,就需要在project_root目录执行命令,不能进入sql_app内部运行。 - 确认__init__.py存在:
sql_app目录下必须包含__init__.py文件(可以是空文件),Python需要这个文件识别该目录为可导入的包。 - 配置Python路径:如果项目不在Python默认搜索路径,可通过环境变量指定:
- Linux/macOS:
export PYTHONPATH=/path/to/your/project_root - Windows:
set PYTHONPATH=C:\path\to\your\project_root
设置后再重新运行uvicorn命令。
- Linux/macOS:
二、Pydantic嵌套模型定义示例
假设你的my_car_dict是如下嵌套结构:
my_car_dict = { "brand": "Tesla", "model": "Model 3", "year": 2023, "specs": { "max_speed": 225, "battery_capacity": 75, "features": ["autopilot", "heated seats"] } }
对应的嵌套模型定义方式:
from pydantic import BaseModel from typing import List # 定义嵌套子模型 class CarSpecs(BaseModel): max_speed: int battery_capacity: int features: List[str] # 定义主模型,引用子模型作为字段类型 class Car(BaseModel): brand: str model: str year: int specs: CarSpecs # 验证并转换字典数据 validated_car = Car(**my_car_dict)
多层嵌套的话,只需逐层定义子模型,再在父模型中引用对应子模型即可,Pydantic会自动处理嵌套结构的校验与解析。
内容的提问来源于stack exchange,提问作者PhilE
相关产品推荐
相关产品推荐

