Skip to main content

简体中文 | 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.

Metadata

Release files for fastapi_config 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastapi_config 0.1.4
File Size Uploaded
fastapi-config-0.1.4.tar.gz 28.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastapi_config 0.1.4
File Interpreter ABI Platform
fastapi_config-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 65.6 kB

Release files / fastapi-config-0.1.4.tar.gz

Download URL fastapi-config-0.1.4.tar.gz
Size 28.6 kB
Tags Source
SHA-256 checksum
How to use checksums
bd72e778a83dd10b36299ea591decc432343361a823d5ad61f901e64da5a4357
BLAKE2b-256 checksum
How to use checksums
420eaf72a0c1011fabb6cb2cda00dd9b6e8fb99c2ab8349d117888efe5269fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.10.1 CPython/3.11.0

Release files / fastapi_config-0.1.4-py3-none-any.whl

Download URL fastapi_config-0.1.4-py3-none-any.whl
Size 37.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
490e76c1ba395fc641081fddfd70420c1c54a9766da4a43eea9325e69c308500
BLAKE2b-256 checksum
How to use checksums
197ed64d37eef38194477d60a8b4576941dfeb8b0c0f6e43419888f84d1169f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via pdm/2.10.1 CPython/3.11.0
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page