01. 创建FastAPI项目
安装环境
Python(推荐 3.12+)、MySQL(8.0+)、Pycharm2024
关注微信公众号 程序员青戈 回复:python软件
配置 pip 加速镜像
打开 %APPDATA% 目录,新建 pip\pip.ini
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple创建项目
设置虚拟环境 .venv

依赖包版本 reqirements.txt
fastapi==0.111.0
uvicorn==0.29.0
sqlalchemy==2.0.51
pymysql==1.1.0
pydantic-settings==2.2.1安装依赖
pip install -r requirements.txt添加启动入口
from app.core.config import settings
app = FastAPI(title="FastAPI服务", version="0.0.1")
if __name__ == "__main__":
uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True)设置测试接口
@app.get("/")
def reed_root():
return {"message": "FastAPI服务正在运行中"}添加配置文件 .env
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=123456
MYSQL_DATABASE=fastapi-db
DEBUG=True读取配置文件
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
BASE_DIR = Path(__file__).resolve().parents[2] # 项目根目录
class Settings(BaseSettings):
"""配置类"""
model_config = SettingsConfigDict(
env_file=BASE_DIR / ".env",
env_file_encoding="utf-8",
)
MYSQL_HOST: str
MYSQL_PORT: int
MYSQL_USER: str
MYSQL_PASSWORD: str
MYSQL_DATABASE: str
DEBUG: bool
@property
def DATABASE_URL(self) -> str:
"""数据库URL"""
"""mysql+pymysql://root:123456@127.0.0.1:3306/fastapi-db?charset=utf8mb4"""
return (f"mysql+pymysql://{self.MYSQL_USER}:{self.MYSQL_PASSWORD}"
f"@{self.MYSQL_HOST}:{self.MYSQL_PORT}/{self.MYSQL_DATABASE}?charset=utf8mb4")
settings = Settings()