Skip to content

atpuxiner/fastapi-scaff

Repository files navigation

fastapi-scaff

What is this?

  • by: axiner
  • fastapi-scaff
  • This is a fastapi scaff.
    • new project
    • add api
    • about project:
      • auto init project (conf, db, log...)
      • auto register router
      • auto register middleware
      • ...
      • integrated sqlalchemy
      • integrated jwt\api-key
      • integrated celery
      • integrated docker deployment
      • ...
    • about structure:
      • standard
      • light
      • tiny
      • single
    • more documents: 请点击链接

Project structure

  • ASM: ASM mode

    • A api
    • S services(&schemas)
    • M models
  • Calling process: main.py(initializer) -> (middleware) - api - services(&schemas) - (models)

  • Structure: (The naming has been finalized after multiple revisions, making it concise and easy to understand)

    └── fastapi-scaff
        ├── app                         (应用)
        │   ├── api                     ├── (api)
        │   │   └── v1                  │   └── (v1)
        │   ├── initializer             ├── (初始化)
        │   │   ├── conf                │   ├── (配置)
        │   │   ├── db                  │   ├── (数据库)
        │   │   ├── log                 │   ├── (日志)
        │   │   └── ...                 │   └── (...)
        │   ├── middleware              ├── (中间件)
        │   ├── models                  ├── (数据模型)
        │   ├── schemas                 ├── (数据结构)
        │   ├── services                ├── (业务逻辑)
        │   ├── utils                   ├── (utils)
        │   └── main.py                 └── (main.py)
        ├── app_celery                  (应用-celery)
        ├── config                      (配置目录)
        ├── docs                        (文档目录)
        ├── logs                        (日志目录)
        ├── tests                       (测试目录)
        ├── .dockerignore
        ├── .gitignore
        ├── .python-version
        ├── build.sh
        ├── docker-compose.yaml
        ├── Dockerfile
        ├── LICENSE
        ├── README.md
        ├── requirements.txt
        └── runserver.py
    
  • 【Other structure】

    • light:Please create and view (with -e light)
    • tiny:Please create and view (with -e tiny)
    • single:Please create and view (with -e single)

Installation

This package can be installed using pip (Python>=3.11):

pip install fastapi-scaff

Scaff usage

  • 1)help document
    • fastapi-scaff -h
  • 2)new project
    • fastapi-scaff new <myproj>
    • light structure: fastapi-scaff new <myproj> -e light
    • tiny structure: fastapi-scaff new <myproj> -e tiny
    • single structure: fastapi-scaff new <myproj> -e single
  • 3)add api
    • cd to project root dir
    • fastapi-scaff add <myapi>
  • 4)integrated celery
    • M1。new with --celery: fastapi-scaff new <myproj> --celery
    • M2。add with --celery: fastapi-scaff add <mycelery> --celery

Project run

  • 1)cd to project root dir
  • 2)modify the configuration, such as for the database
  • 3)pip install -r requirements.txt
  • 4)python runserver.py
  • 5)docker, please see:
    • build.sh
    • docker-compose.yaml | docker-compose.swarm.yaml[config/nginx.conf]
    • Dockerfile | Dockerfile.slim

License

This project is released under the MIT License (MIT). See LICENSE

About

This is a fastapi scaff. (fastapi脚手架,一键生成项目或api,让开发变得更简单)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages