# fastapi-basic **Repository Path**: chenchuangtx/fastapi-basic ## Basic Information - **Project Name**: fastapi-basic - **Description**: 这是自己开源的python基础的系统管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-14 - **Last Updated**: 2026-03-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 目录结构 - src/ : 项目的主目录,包含所有应用相关代码。 - core/ : 核心功能,如配置、安全等。 - modules/ : API路由和视图,分模块管理。 - models/ : 数据库模型。 - db/ : 数据库相关设置和会话管理。 - utils/ : 工具函数和公用模块。 - .env: 环境变量文件,用于存储敏感信息,如数据库连接字符串。 - main.py: 项目的入口文件,启动FastAPI应用。 - requirements.txt: 项目依赖列表。 - Dockerfile: Docker配置文件,用于容器化部署。 - README.md: 项目说明文件。 ## 安装依赖库 - 安装fastapi ```aiignore pip install fastapi ``` - 安装uvicorn服务器 ```aiignore pip install uvicorn[standard] ``` - redis安装 ```aiignore pip install redis ``` - tortoise-orm 是一个为异步Python应用设计的对象关系映射(ORM)库 ```aiignore pip install tortoise-orm aiomysql ``` - src/app.py 进行启动服务设置 - 安装pydantic ```aiignore pip install pydantic ``` - src/utils/config 进行设置以及.env配置 - src/utils/response 定义接口返回类型 - src/utils/response_code 统一定义报错类型 ```aiignore ForeignKeyField( model_name , related_name = None , on_delete = 'CASCADE' , db_constraint = True , ** kwargs ) model_name:关联模型的名称{app}.{models} related_name:相关模型上的属性名称,用于反向解析外键 on_delete: field.CASCADE:表示如果相关模型被删除,该模型应该被级联删除 field.RESTRICT:表示只要有外键指向,相关模型删除就会受到限制 field.SET_NULL:将字段重置为 NULL,以防相关模型被删除。仅当字段已设置时才能null=True设置 field.SET_DEFAULT:将字段重置为default值,以防相关模型被删除。只能设置是字段有一个default集合 to_field:建立外键关系的相关模型上的属性名。如果未设置,则使用 pk db_constraint: 控制是否应在数据库中为此外键创建约束。默认值为 True,这几乎可以肯定是您想要的;将此设置为 False 可能对数据完整性非常不利 ``` ## 操作符 - 使用 jsonable_encoder() 转换 Pydantic model 为 JSON - 列表(list)、元组(tuple)前面加星号* ```aiignore 列表前面加星号作用是将列表解开(unpacke)成多个独立的参数,传入函数。 data = [7, 8] -> *data => (7,8) ``` - 字典(dict)前面加两星号** ```aiignore 字典前面加两个星号,是将字典解开成为独立的元素作为形参。 data = {'a':7, 'b':8} -> **data => (7,8) ```