Skip to content

基于 FastAPI 框架的前后端分离中后台解决方案,遵循伪三层架构设计, 支持 Python 3.10 及以上版本

License

Notifications You must be signed in to change notification settings

fastapi-practices/fastapi_best_architecture

Repository files navigation

The logo includes the abstract combination of the three letters FBA, forming a lightning bolt that seems to spread out from the ground

FastAPI Best Architecture

English | 简体中文

A backend and frontend separation solution based on the FastAPI framework, following the pseudo three-tier architecture design, supporting Python 3.10 and above versions

🔥Continuously updated and maintained🔥

GitHub Python MySQL PostgreSQL SQLAlchemy Pydantic v2 Ruff uv Docker Discord Discord

Note

This repository as a template library open to any person or enterprise can be used for free!

Pseudo three-tier architecture

The mvc architecture is a common design pattern in python web, but the three-tier architecture is even more fascinating

In python web development, there is no common standard for the concept of three-tier architecture, so we'll call it a pseudo three-tier architecture here

But please note that we don't have a traditional multi-app structure (django, springBoot...) If you don't like this pattern, use templates to transform it to your heart's content!

workflow java fastapi_best_architecture
view controller api
data transmit dto schema
business logic service + impl service
data access dao / mapper crud
model model / entity model

Online Demo

You can view some of the preview screenshots in fastapi_best_architecture_ui

For the demo entrance, please refer to Official documentation

tester: test / 123456

super: admin / 123456

Features

  • Design with FastAPI PEP 593 Annotated Parameters
  • Global asynchronous design with async/await + asgiref
  • Follows Restful API specification
  • Global SQLAlchemy 2.0 syntax
  • Pydantic v1 and v2 (different branches)
  • Casbin RBAC access control model
  • Role menu RBAC access control model
  • Celery asynchronous tasks
  • JWT middleware whitelist authentication
  • Global customizable time zone time
  • Docker / Docker-compose deployment
  • Pytest Unit Testing

Built-in features

  • User management: management of system user roles, assignment of permissions
  • Departmental management: Configuration of the system organization (company, department, group, ...)
  • Menu management: Configuration of system menus, user menus, button permission labels
  • Role management: assignment of role menu privileges, assignment of role routing privileges
  • Dictionary management: maintenance of commonly used fixed data or parameters within the system
  • Code generation: back-end code is automatically generated, supporting preview, write and download.
  • Operation log: logging and querying of normal and abnormal system operations.
  • Login authentication: graphical captcha backend authentication login
  • Logging: logging and querying of normal and abnormal user logins
  • Service monitoring: server hardware device information and status
  • Timed tasks: automated tasks, asynchronous tasks, support for function calls
  • Interface Documentation: Automatically generate online interactive API interface documentation.

Development and deployment

For more details, please check the official documentation

Contributors

Special thanks

Interactivity

TG / Discord

Sponsor us

If this program has helped you, you can sponsor us with some coffee beans: ☕ Sponsor ☕

License

This project is licensed by the terms of the MIT license

Stargazers over time

Releases

No releases published

Sponsor this project

Languages