Stay Hungry,Stay Foolish!

fastapi project template -- fastapi scaffold

FastAPI Project Template

https://github.com/rochacbruno/fastapi-project-template

fastapi框架的脚手架, 集成的技术都是fastapi作者推荐的:

  • SQLModel -- sqlachemy 和 pydantic的集合
  • Typer -- CLI
  • Poetry

提供

  • 安装 打包 发布 功能
  • lint test format release
  • mkdocs
  • 容器
  • pytest
  • codecov

 

The base to start an openapi project featuring: SQLModel, Typer, FastAPI, JWT Token Auth, Interactive Shell, Management Commands.

What is included on this template?

    • 🖼️ The base to start an openapi project featuring: SQLModel, Typer, FastAPI, VueJS.
    • 📦 A basic setup.py file to provide installation, packaging and distribution for your project.
      Template uses setuptools because it's the de-facto standard for Python packages, you can run make switch-to-poetry later if you want.
    • 🤖 A Makefile with the most useful commands to install, test, lint, format and release your project.
    • 📃 Documentation structure using mkdocs
    • 💬 Auto generation of change log using gitchangelog to keep a HISTORY.md file automatically based on your commit history on every release.
    • 🐋 A simple Containerfile to build a container image for your project.
      Containerfile is a more open standard for building container images than Dockerfile, you can use buildah or docker with this file.
    • 🧪 Testing structure using pytest
    • ✅ Code linting using flake8
    • 📊 Code coverage reports using codecov
    • 🛳️ Automatic release to PyPI using twine and github actions.
    • 🎯 Entry points to execute your program using python -m <project_name> or $ project_name with basic CLI argument parsing.
    • 🔄 Continuous integration using Github Actions with jobs to lint, test and release your project on Linux, Mac and Windows environments.

 

依赖 -- setuptools

https://github.com/pypa/setuptools

https://setuptools.pypa.io/en/latest/

可以将本应用的代码, 注册到库中, 这样其它应用可以访问此应用。

使用pip安装, 或者上传到pypi

https://setuptools.pypa.io/en/latest/userguide/quickstart.html

 

Documentation

Setuptools is a fully-featured, actively-maintained, and stable library designed to facilitate packaging Python projects.

It helps developers to easily share reusable code (in the form of a library) and programs (e.g., CLI/GUI tools implemented in Python), that can be installed with pip and uploaded to PyPI.

dynaconf

https://www.dynaconf.com/

https://github.com/dynaconf/dynaconf

  • Inspired by the 12-factor application guide
  • Settings management (default values, validation, parsing, templating)
  • Protection of sensitive information (passwords/tokens)
  • Multiple file formats toml|yaml|json|ini|py and also customizable loaders.
  • Full support for environment variables to override existing settings (dotenv support included).
  • Optional layered system for multi environments [default, development, testing, production] (also called multi profiles)
  • Built-in support for Hashicorp Vault and Redis as settings and secrets storage.
  • Built-in extensions for Django and Flask web frameworks.
  • CLI for common operations such as init, list, write, validate, export.

 

posted @ 2022-08-02 00:24  lightsong  阅读(275)  评论(0编辑  收藏  举报
Life Is Short, We Need Ship To Travel