创建项目及基础配置
- 本项目使用uv进行创建管理,关于UV的使用方法在这里 。当然,你也可以用Conda,或者啥也不用。
创建项目
- 进入你想创建项目的目录,执行一下命令:
uv init api-gateway
- 该命令会创健一个名为
api-gateway
的项目,目录结构如下:
api-gateway
├── .python-version
├── README.md
├── main.py
└── pyproject.toml
- 如果现在在项目中使用虚拟环境,那么你需要在项目中创建一个虚拟环境,执行以下命令:
uv venv
- 该命令会在项目中创建一个名为
.venv
的虚拟环境,你可以在项目中使用该虚拟环境。
安装依赖
- 进入项目目录,使用uv或 pip安装一下的依赖包: Fastapi uvicorn
uv add fastapi uvicorn
创建基础服务
- 进入项目目录,修改main.py文件,添加以下代码:
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
if __name__ == "__main__":
uvicorn.run("main:app", reload=True)
运行项目
- 使用uv运行项目:
uv run main.py
- 或者使用python运行项目:
python main.py
- 运行成功之后,会看到类似以下信息,这代表项目已经启动成功:
INFO: Will watch for changes in these directories: ['/Users/peng/project/ai-app-dome/api-gateway']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [14506] using StatReload
INFO: Started server process [14520]
INFO: Waiting for application startup.
INFO: Application startup complete.
- 现在打开浏览器,访问
http://127.0.0.1:8000
,会看到类似以下信息:
{
"Hello": "World"
}
- 在路径后面加上
/docs
,就可以看到fastapi的文档了:
完善项目框架
我们需要完善一下项目框架,以便后续的开发。
- 创建一个
api
目录,用于存放项目的api代码。 - 创建一个
core
目录,用于存放项目的核心代码。 - 创建一个
schemas
目录,用于存放项目的模型代码。 - 创建一个
utils
目录,用于存放项目的工具代码。
这时的目录结构如下:
- __init__.py
- __init__.py
- __init__.py
- __init__.py
- main.py
- config.py
- pyproject.toml
- README.md
- .python-version
配置
创建配置文件
- 为了方便管理配置,我们可以项目根目录下创建一个配置文件,用于存储项目的配置信息。
创建一个
config.py
文件,并添加以下代码:
import os
from dotenv import load_dotenv, find_dotenv
from pydantic_settings import BaseSettings
from typing import List
class Config(BaseSettings):
# 加载环境变量
load_dotenv(find_dotenv(), override=True)
# 调试模式
APP_DEBUG: bool = True
# 项目信息
VERSION: str = "0.0.1"
PROJECT_NAME: str = "api-gateway"
# 文档地址
DOCS_URL: str|None = "/docs"
REDOC_URL: str|None = ""
# 跨域请求
CORS_ORIGINS: List = ["*"]
CORS_ALLOW_CREDENTIALS: bool = True
CORS_ALLOW_METHODS: List = ["*"]
CORS_ALLOW_HEADERS: List = ["*"]
settings = Config()
Last updated on