FastAPI-Config
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:
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fastapi-config-0.1.4.tar.gz | 28.6 kB | Without provenance | Details for fastapi-config-0.1.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fastapi_config-0.1.4-py3-none-any.whl | Python 3 | none | any | Details for fastapi_config-0.1.4-py3-none-any.whl |
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
|
Security for fastapi_config 0.1.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.