FastAPI Beanie JWT 项目教程
fastapi-beanie-jwtSample FastAPI server with JWT auth and Beanie ODM项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-beanie-jwt
1. 项目的目录结构及介绍
fastapi-beanie-jwt/
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── config.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── user.py
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── auth.py
│ ├── services/
│ │ ├── __init__.py
│ │ ├── auth_service.py
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── jwt_utils.py
├── tests/
│ ├── __init__.py
│ ├── test_auth.py
├── requirements.txt
├── .env
├── .gitignore
├── README.md
目录结构介绍
app/
: 应用的主要目录,包含所有业务逻辑和配置文件。
__init__.py
: 初始化文件,用于将 app
目录作为一个模块。main.py
: 项目的启动文件。config.py
: 项目的配置文件。models/
: 存放数据模型的目录。
routes/
: 存放路由定义的目录。
services/
: 存放服务层的目录。
utils/
: 存放工具函数的目录。
jwt_utils.py
: JWT 工具函数文件。
tests/
: 测试目录,包含所有测试文件。
requirements.txt
: 项目依赖文件。.env
: 环境变量配置文件。.gitignore
: Git 忽略文件。README.md
: 项目说明文件。
2. 项目的启动文件介绍
main.py
from fastapi import FastAPI
from app.routes import auth
from app.config import settings
app = FastAPI()
app.include_router(auth.router, prefix="/api/v1")
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"main:app",
host=settings.HOST,
port=settings.PORT,
reload=settings.DEBUG_MODE
)
启动文件介绍
- 导入必要的模块和配置。
- 创建 FastAPI 实例。
- 包含认证路由。
- 使用
uvicorn
启动应用,配置从 config.py
中读取。
3. 项目的配置文件介绍
config.py
from pydantic import BaseSettings
class Settings(BaseSettings):
DATABASE_URL: str
JWT_SECRET_KEY: str
JWT_ALGORITHM: str = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
HOST: str = "0.0.0.0"
PORT: int = 8000
DEBUG_MODE: bool = False
class Config:
env_file = ".env"
settings = Settings()
配置文件介绍
- 使用
pydantic
的 BaseSettings
类来管理配置。 - 定义了数据库 URL、JWT 密钥、JWT 算法、访问令牌过期时间等配置项。
- 从
.env
文件中读取环境变量。 - 提供默认值,并在需要时可以覆盖。
fastapi-beanie-jwtSample FastAPI server with JWT auth and Beanie ODM项目地址:https://gitcode.com/gh_mirrors/fa/fastapi-beanie-jwt