Skip to main content

fastapi-app-manage make fastapi dev easy

Project description

FastAPI-APP-Manage

FastAPI-APP-Manage 是一个由Typer构建的命令行工具,能够简化fastapi项目结构的配置。 其作用类似于Django框架中的python manage.py 下的

python3 manage.py startapp my_app

安装方式(python版本>=3.11)

你可以下载安装用如下指令:

pip install fastapi_app_manage

或者使用poetry

poetry add fastapi_app_manage --group dev

完成后你将可以在命令行输入如下指令

fastapi-app start [appname]

简写方式

fastapi-app st [appname]

使用方式

选择 pip + venv

打开cmd 首先你要创建一个fastapi项目

mkdir my_fastapi_project
cd my_fastapi_project
python3 -m venv .venv

激活虚拟环境

  source .venv/bin/activate # linux/macos
  .venv/Scripts/activate # windows

激活后安装本库 安装完毕后,输入指令

fastapi-app start my_app
fastapi-app st my_app (简写)

此时会进行询问, 询问依次是

? Select the packagemanager:  pip #包管理器,这里选择pip,支持pip和poetry
? Do you want to add fastapi standard? Yes #是否启用安装fastapi[standard],即能够安装fastapi开发中的其余的常用依赖例如文件上传的python-mutipart
? Select the databaseframework:  tortoise-orm #数据库框架,目前仅支持sqlmodel和tortoise-orm
? Select the database:  PostgresSQL #数据库,目前支持MySQL和PostgressSQL
? Do you want to add fastapi-utils? Yes #fastapi-utils第三方插件,用于帮助fastapi开发,引入后将使用类试图和APISettings
? Do you want to add cors? Yes #跨域
? Do you want to add jinja2 template? Yes #模板引擎,目前支持jinja2
? Do you want to add standard response? Yes #标准响应

需要注意的是,如果在选择数据库框架的时候选择不使用则不会询问选择数据库 完成后需要安装相关依赖,依赖安装后可以开始编写代码 后续如果要创建新的app,即新的router/service,只需要输入上述指令且无需再进行询问,会自动按照上次配置创建。 同时因为很多时候每个app对应的路由router彼此之前可能会存在嵌套关系(例如下方例子),因此本指令并不会将router进行include_router函数操作,故需要开发者自行编写代码完成。

from fastapi import APIRouter
from .user import user_router as user
from .login import login_router as login

router = APIRouter()
user.include_router(login,prefix="/users/logins")
router.include_router(user)

使用poetry

使用poetry首先你需要按照poetry 然后打开cmd输入

poetry new my_fastapi_project

创建好poetry项目后,你可以安装本库

poetry add fastapi_app_manage --group dev

注意这里使用了--group dev意味着这个依赖是一个开发依赖,部署的时候不用安装 完成后,输入指令

poetry run fastapi-app start my_app

或者

poetry run fastapi-app st my_app

同样会进行询问。

? Select the packagemanager:  poetry #包管理器,这里使用poetry,支持pip和poetry
? Do you want to add fastapi standard? Yes #是否启用安装fastapi[standard],即能够安装fastapi开发中的其余的常用依赖例如文件上传的python-mutipart
? Select the databaseframework:  tortoise-orm #数据库框架,目前仅支持sqlmodel和tortoise-orm
? Select the database:  MySQL #数据库,目前支持MySQL和PostgressSQL
? Do you want to add fastapi-utils? Yes #fastapi-utils第三方插件,用于帮助fastapi开发,引入后将使用类试图和APISettings
? Do you want to add cors? Yes #跨域
? Do you want to add jinja2 template? Yes #模板引擎,目前支持jinja2
? Do you want to add standard response? Yes #标准响应

询问结束后,安装依赖

poetry install

依赖完成安装后,可以开始编写代码

与 Django 的 startapp 命令不同,fastapi-app-manage 工具不会将路由、模型类、逻辑、核心部分和工具函数等文件统一放在一个 app 文件夹下。相反,它会将这些文件分别放置在对应的子文件夹中(如 router、models、service、core 等),并用一个 app 文件夹来包含这些子文件夹。 首次使用该指令时,fastapi-app-manage 会自动创建一个 app 文件夹,并在其中添加上述的子文件夹。后续在同一项目中再次执行该指令时,会在已有的子文件夹下继续添加新的文件。

未来计划

引入更多的可选的配置,例如引入Redis数据库配置、引入MongoDB数据库配置、开发常用工具类等。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_app_manage-0.2.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_app_manage-0.2.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_app_manage-0.2.0.tar.gz.

File metadata

  • Download URL: fastapi_app_manage-0.2.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Windows/10

File hashes

Hashes for fastapi_app_manage-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b6e889abe5df25f1ea7fd448731828d986736f70631841e1111d88000f6fc730
MD5 a8474e71420633215156311635de91c2
BLAKE2b-256 483c417ce0472a9b6e5a6f34b0276ba0c460cd0c2652511fc12e1c9cbb87f836

See more details on using hashes here.

File details

Details for the file fastapi_app_manage-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fastapi_app_manage-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9b19fc32427de6343479d9749fef985f806818122837ec480a2cc5c06c3403c
MD5 7848d44915be399ab358ca150297b9de
BLAKE2b-256 b50d11390ec9c2d527c5232a2a283b8efed126c7a0f1d796cf08338648208a4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page