搭建整个项目的完整流程以及相关代码:
1. 创建项目结构
创建一个名为my_project
的项目文件夹,并在其中创建所需的子文件夹和文件。
my_project/
├── app/
│ ├── __init__.py
│ ├── api/
│ │ ├── __init__.py
│ │ ├── user_routes.py
│ │ └── post_routes.py
│ ├── service/
│ │ ├── __init__.py
│ │ └── service.py
│ ├── config/
│ │ ├── __init__.py
│ │ └── config.py
│ ├── db/
│ │ ├── __init__.py
│ │ └── database.py
│ ├── cache/
│ │ ├── __init__.py
│ │ └── cache.py
│ └── logger/
│ ├── __init__.py
│ └── logger.py
├── main.py
└── requirements.txt
2. 安装依赖项
在项目文件夹中创建一个名为requirements.txt
的文件,包含项目所需的依赖项。
fastapi
uvicorn
databases
asyncpg
aioredis
运行以下命令安装依赖项:
pip install -r requirements.txt
3. 编写配置文件
在app/config/config.py
中,添加数据库和Redis的连接信息。
DATABASE_URL = "postgresql://user:password@localhost/db_name"
REDIS_URL = "redis://localhost"
4. 设置日志
创建日志文件app/logger/logger.py
,设置日志记录器。
import logging
def setup_logger():
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch = logging.StreamHandler()
ch.setFormatter(formatter)
logger.addHandler(ch)
fh = logging.FileHandler('app.log')
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger
logger = setup_logger()
5. 数据库连接
创建数据库连接文件app/db/database.py
,设置连接函数和关闭函数。
import asyncpg
from app.config.config import DATABASE_URL
async def connect_to_db():
return await asyncpg.connect(DATABASE_URL)
async def close_db_connection(connection):
await connection.close()
6. Redis连接
创建Redis连接文件app/cache/cache.py
,设置连接函数和关闭函数。