Skip to main content

FastAPI-Config is a visual dynamic configuration management extension based on FastAPI-Amis-Admin.

Project description

简体中文 | English

FastAPI-Config

Package version Downloads Chat on Gitter 229036692

Project Introduction

Fast API-Config is a visual dynamic configuration management extension package based on FastAPI-Amis-Admin.

Install

pip install fastapi-config

Simple example

main.py:

from fastapi import FastAPI
from fastapi_amis_admin import amis
from fastapi_amis_admin.admin import Settings, AdminSite
from fastapi_amis_admin.models import Field
from fastapi_config import ConfigModelAdmin, DbConfigStore, ConfigAdmin
from sqlmodel import SQLModel
from pydantic import BaseModel
from typing import List

# Create a `FastAPI` application
app = FastAPI()

# Create `AdminSite` instance
site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///amisadmin.db'))

# Create a configuration repository
dbconfig = DbConfigStore(site.db)

# Register Admin (optional)
site.register_admin(ConfigModelAdmin)


class ContactCfg(BaseModel):
    name: str = Field("", title="Name")
    qq: List[str] = Field("", title="QQ")


class SiteCfg(BaseModel):
    name: str = Field(..., title="Site Name")
    logo: str = Field("", title="Site LOGO", amis_form_item=amis.InputImage())
    contacts: List[ContactCfg] = Field([], title="Contact list")
    domains: List[str] = Field([], title='Domain list')


class SiteCfgAdmin(ConfigAdmin):
    page_schema = amis.PageSchema(label='Site Config')
    schema = SiteCfg


site.register_admin(SiteCfgAdmin)


@app.get('/config')
async def read_config():
    return await dbconfig.get(SiteCfg)


@app.on_event("startup")
async def startup():
    # Mount the site to the FastAPI instance
    site.mount_app(app)
    # Create database tables (required for first run)
    await site.db.async_run_sync(SQLModel.metadata.create_all, is_session=False)


if __name__ == '__main__':
    import uvicorn

    uvicorn.run(app, debug=True)

Interface/UI Preview

  • Open http://127.0.0.1:8000/admin/ in your browser:

SchedulerAdmin

Dependent project

License

The project follows the Apache2.0 license agreement.

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-config-0.1.4.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

fastapi_config-0.1.4-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

File details

Details for the file fastapi-config-0.1.4.tar.gz.

File metadata

  • Download URL: fastapi-config-0.1.4.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.10.1 CPython/3.11.0

File hashes

Hashes for fastapi-config-0.1.4.tar.gz
Algorithm Hash digest
SHA256 bd72e778a83dd10b36299ea591decc432343361a823d5ad61f901e64da5a4357
MD5 439f3e75ac1ec27b10aec41fcd50a3bb
BLAKE2b-256 420eaf72a0c1011fabb6cb2cda00dd9b6e8fb99c2ab8349d117888efe5269fdd

See more details on using hashes here.

File details

Details for the file fastapi_config-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: fastapi_config-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 37.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.10.1 CPython/3.11.0

File hashes

Hashes for fastapi_config-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 490e76c1ba395fc641081fddfd70420c1c54a9766da4a43eea9325e69c308500
MD5 4bf4098a37f7b2b7fc5cfebcbb272ae6
BLAKE2b-256 197ed64d37eef38194477d60a8b4576941dfeb8b0c0f6e43419888f84d1169f7

See more details on using hashes here.

Supported by

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