Files
max_code_test_gitea_2/main6.py
T
2026-09-11 23:40:12 +08:00

48 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# main0814.py
# 项目入口文件:创建 FastAPI 应用、注册路由、创建数据库表
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from database import engine, Base
from api1 import users # 导入 users 子路由
# 1. 创建数据库表(如果表不存在)
# Base.metadata.create_all 会扫描所有继承 Base 的模型,生成对应的 CREATE TABLE 语句
# 对于 MySQL,它会根据模型定义自动生成建表语句(包括索引、约束等)
# Base.metadata.create_all(bind=engine)
# 2. 创建 FastAPI 实例
app = FastAPI(
title="FastAPI + SQLAlchemy 分层架构(MySQL)",
description="用户管理示例,演示分层架构和 MySQL 集成",
version="1.0.0"
)
# 3. 添加跨域中间件(允许前端跨域请求)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有来源,生产环境应指定具体域名
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 4. 注册子路由
# prefix 为路由前缀,所有用户接口都以 /api/users 开头
app.include_router(users.router, prefix="/api/users", tags=["用户管理"])
# 5. 根路径
@app.get("/")
async def root():
return {"message": "欢迎访问 FastAPI + SQLAlchemy 分层示例!请访问 /docs 查看 API 文档。"}
# 6. 如果直接运行此文件,启动 uvicorn 服务器
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"main6:app", # 指定应用位置(模块名:应用变量名)
host="localhost", # 监听所有网络接口
port=8001, # 端口
reload=True # 开发模式,代码变动自动重启
)