# fastapi-config
**Repository Path**: jianfeihua/fastapi-config
## Basic Information
- **Project Name**: fastapi-config
- **Description**: No description available
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-06
- **Last Updated**: 2025-08-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[简体中文](https://github.com/amisadmin/fastapi_config/blob/master/README.zh.md)
| [English](https://github.com/amisadmin/fastapi_config)
FastAPI-Config
## 项目介绍
`FastAPI-Config`是一个基于`FastAPI-Amis-Admin`的可视化动态配置管理拓展包.
## 安装
```bash
pip install fastapi-config
```
## 简单示例
**main.py**:
```python
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
# 创建`FastAPI`应用
app = FastAPI()
# 创建`AdminSite`实例
site = AdminSite(settings=Settings(database_url_async='sqlite+aiosqlite:///amisadmin.db'))
# 创建配置存储库
dbconfig = DbConfigStore(site.db)
# 注册管理页面(可选)
site.register_admin(ConfigModelAdmin)
class ContactCfg(BaseModel):
name: str = Field("", title="联系人")
qq: List[str] = Field("", title="QQ")
class SiteCfg(BaseModel):
name: str = Field(..., title="网站名称")
logo: str = Field("", title="网站LOGO", amis_form_item=amis.InputImage())
contacts: List[ContactCfg] = Field([], title="客服列表")
domains: List[str] = Field([], title='域名列表')
class SiteCfgAdmin(ConfigAdmin):
page_schema = amis.PageSchema(label='站点信息')
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():
# 挂载后台管理系统
site.mount_app(app)
# 创建数据库表(第一次运行时需要)
await site.db.async_run_sync(SQLModel.metadata.create_all, is_session=False)
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, debug=True)
```
## 界面预览
- Open `http://127.0.0.1:8000/admin/` in your browser:

## 依赖项目
- [FastAPI-Amis-Admin](https://docs.amis.work/)
## 许可协议
该项目遵循 Apache2.0 许可协议。