Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
基于 FastAPI 开发的后端框架,集成了 Tortoise ORM、Pydantic、Aerich、PyJWT、PyYAML、Redis 等插件,并且可以在编写好 `models` 文件后执行 `manager.py gen` 命令,批量生成 `schemas`、`routers`、`services` 代码,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计,大大减少了项目的前期开发工作,帮助开发者快速构建和部署后端服务。
基于 FastAPI 开发的后端框架,集成了 Tortoise ORM、Pydantic、Aerich、PyJWT、PyYAML、Redis 等插件,并且可以在编写好 models
文件后执行 manager.py gen
命令,批量生成 schemas
、routers
、services
代码,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计,大大减少了项目的前期开发工作,帮助开发者快速构建和部署后端服务。
models
的前提下,意一键生成基本 CRUD 接口,大大减轻前期开发工作project-root/
│
├─ backend/ # 后端项目目录(python 3.10.15)
│ ├─ app/ # fastapi 项目目录
│ │ │
│ │ ├─ handlers/ # 处理器目录
│ │ │ ├─ authentication.py # 认证处理器
│ │ │ ├─ exception.py # 异常处理器
│ │ │ └─ ...
│ │ │
│ │ ├─ models/ # 数据库模型目录
│ │ │ ├─ *.py # 数据库模型(user、role 等)
│ │ │ └─ ...
│ │ │
│ │ ├─ routers/ # 路由目录(定义路由相关信息)
│ │ │ ├─ *_router.py # 路由(user_router、role_router 等)
│ │ │ └─ ...
│ │ │
│ │ ├─ schemas/ # pydantic 数据结构目录(定义请求响应参数结构)
│ │ │ ├─ *.py # 参数模型
│ │ │ └─ ...
│ │ │
│ │ ├─ services/ # 事务处理目录(实现路由对应的逻辑)
│ │ │ ├─ *_service.py # 事务逻辑处理函数(user_service 等)
│ │ │ └─ ...
│ │ │
│ │ ├─ utils/ # 工具函数目录
│ │ │ └─ ...
│ │ │
│ │ ├─ __init__.py # 导入路、初始化配置、导入错误处理
│ │ └─ main.py # 程序入口
│ │
│ ├─ logs/ # 日志目录
│ │ ├─ access.log # 访问日志
│ │ └─ default.log # 默认日志
│ │
│ ├─ test/ # 测试目录
│ │ └─ test_*.py # 测试文件
│ │
│ ├─ easy_fastapi.yaml # 项目配置
│ └─ log_config.json # uvicorn 日志配置
│
├─ frontend/ # 前端项目目录
│ └─ ...
│
└─ ...
正例:
if not await verify_password(form_data.password, user.h_pwd):
raise FailureException('密码错误')
反例:
if not await verify_password(form_data.password, user.h_pwd):
return JSONResult.failure('密码错误')
pip install easy_fastapi
easy_fastapi init
cd <项目名称>/backend
easy_fastapi run --reload
等价于 uvicorn app:app --reload
easy_fastapi run
等价于 uvicorn app:app --log-config log_config.json --log-level warning
注:所有脚手架命令均在
<项目名称>/backend
目录下执行。
backend/app/easy_fastapi.yaml
中相关配置backend.app.models
中的模型
easy_fastapi gen
生成基本业务代码easy_fastapi db init
easy_fastapi db init-db
easy_fastapi db init-table
backend/test
目录中添加测试文件cd backend && pytest test
查看测试结果# 项目配置文件
# 请在此文件中配置项目相关信息,如数据库连接信息、安全认证配置、日志配置等
# 带 * 号表示必选项
easy_fastapi:
# 是否强制所有除 500 外的状态码都返回 200 状态码,默认 False
force_200_code: False
# 上传文件保存目录
upload_dir: ./upload
# 单页应用配置
spa:
# 是否挂载单页应用,默认 False
enabled: True
# 入口文件路径
index_file: ../frontend/index.html
# 静态资源目录
static_dir: ../frontend/assets
# 静态资源 URL
static_url: /assets
# 安全认证配置
authentication:
# * 密钥
secret_key: easy_fastapi
# 令牌签发者, 默认 easy_fastapi
iss: easy_fastapi
# 认证令牌 URL, 默认 /auth/token
token_url: /token
# 登录 URL, 默认 /auth/login
login_url: /login
# 刷新令牌 URL, 默认 /auth/refresh
refresh_url: /refresh
# 算法,默认 HS256
algorithm: HS256
# 访问令牌过期时间,默认 15 分钟
access_token_expire_minutes: 30
# 刷新令牌过期时间,默认 10080 分钟,即 7 天
refresh_token_expire_minutes: 10080
fastapi:
# root_path,默认 ''
root_path: /api
# 文档配置,需在 fastapi 实例化时手动传参
swagger:
# 文档标题
title: Easy FastAPI
# 文档描述
description: 基于 FastAPI 开发的后端框架,集成了 Tortoise ORM、Pydantic、Aerich、PyJWT、PyYAML、Redis 等插件,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计,帮助开发者快速构建和部署后端服务。
# 文档版本
version: 0.12.0
# 联系信息
contact:
# 联系人
name: one-ccs
# 联系人 URL
url: ~
# 联系人邮箱
email: one-ccs@foxmail.com
# 许可证信息
license:
# 许可证名称
name: 开源协议:MIT
# 许可证 URL
url: https://github.com/one-ccs/easy_fastapi?tab=MIT-1-ov-file#readme
# 用于获取访问令牌的 URL,默认 /token
token_url: /token
# 默认 /docs
docs_url: /api-docs
# 默认 /redoc
redoc_url: /api-redoc
# 默认 /openapi.json
openapi_url: /api-json
# 中间件配置
middleware:
# 跨域配置
cors:
# 是否启用跨域,默认 False
enabled: False
# 允许的域列表,默认 ['*']
allow_origins:
- '*'
# 是否允许请求携带 cookie,默认 True
allow_credentials: True
# 允许的请求方法,默认 ['*']
allow_methods:
- '*'
# 允许的请求头,默认 ['*']
allow_headers:
- '*'
# 强制所有传入请求必须是 https 或 wss
https_redirect:
enabled: False
# 强制所有传入请求都必须正确设置 Host 请求头,以防 HTTP 主机头攻击
trusted_host:
enabled: False
allowed_hosts:
- '*'
# gzip 压缩配置
gzip:
enabled: False
minimum_size: 1000
compresslevel: 5
# 数据库配置
database:
# * 数据库用户名
username: root
# * 数据库密码
password: '123456'
# * 数据库名称
database: easy_fastapi
# 数据库主机名,默认 127.0.0.1
host: 127.0.0.1
# 数据库端口号,默认 3306
port: 3306
# 是否打印日志,默认 False
echo: False
# 时区,默认 Asia/Chongqing
timezone: Asia/Chongqing
# Redis 配置
redis:
# 是否启用,默认 False
enabled: False
# * 主机名,默认 None
host: 127.0.0.1
# 密码,默认 None
password: ~
# 端口号,默认 6379
port: 6379
# 数据库号,默认 0
db: 0
# 是否解码响应,默认 True
decode_responses: True
FAQs
基于 FastAPI 开发的后端框架,集成了 Tortoise ORM、Pydantic、Aerich、PyJWT、PyYAML、Redis 等插件,并且可以在编写好 `models` 文件后执行 `manager.py gen` 命令,批量生成 `schemas`、`routers`、`services` 代码,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计,大大减少了项目的前期开发工作,帮助开发者快速构建和部署后端服务。
We found that easy-fastapi demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.