FastApi-Strawberry-GraphQL-SqlAlchemy-BoilerPlate 项目教程
1. 项目的目录结构及介绍
FastApi-Strawberry-GraphQL-SqlAlchemy-BoilerPlate/
├── app/
│ ├── __init__.py
│ ├── main.py
│ ├── config.py
│ ├── models/
│ │ ├── __init__.py
│ │ ├── user.py
│ ├── schemas/
│ │ ├── __init__.py
│ │ ├── user.py
│ ├── graphql/
│ │ ├── __init__.py
│ │ ├── queries.py
│ │ ├── mutations.py
│ ├── database.py
├── tests/
│ ├── __init__.py
│ ├── test_main.py
├── Dockerfile
├── requirements.txt
├── README.md
目录结构介绍
app/
: 包含应用程序的主要代码。__init__.py
: 初始化文件。main.py
: 项目的启动文件。config.py
: 项目的配置文件。models/
: 数据库模型文件。schemas/
: GraphQL 模式文件。graphql/
: GraphQL 查询和变更文件。database.py
: 数据库连接和配置文件。
tests/
: 包含测试文件。Dockerfile
: Docker 配置文件。requirements.txt
: 项目依赖文件。README.md
: 项目说明文件。
2. 项目的启动文件介绍
main.py
from fastapi import FastAPI
from strawberry.asgi import GraphQL
from app.graphql.schema import schema
app = FastAPI()
graphql_app = GraphQL(schema)
app.add_route("/graphql", graphql_app)
app.add_websocket_route("/graphql", graphql_app)
启动文件介绍
main.py
是项目的入口文件,负责初始化 FastAPI 应用并添加 GraphQL 路由。- 通过
GraphQL
类将schema
绑定到/graphql
路由,支持 HTTP 和 WebSocket 请求。
3. 项目的配置文件介绍
config.py
import os
from pydantic import BaseSettings
class Settings(BaseSettings):
DATABASE_URL: str = os.getenv("DATABASE_URL", "postgresql://user:password@localhost/dbname")
SECRET_KEY: str = os.getenv("SECRET_KEY", "secret")
settings = Settings()
配置文件介绍
config.py
文件使用pydantic
的BaseSettings
类来管理配置。- 通过环境变量或默认值来设置数据库连接字符串和密钥。
settings
实例用于在整个项目中访问配置。
以上是 FastApi-Strawberry-GraphQL-SqlAlchemy-BoilerPlate
项目的目录结构、启动文件和配置文件的介绍。希望这份教程能帮助你更好地理解和使用该项目。