Ваша первая админка
Запустите настоящее FastAPI-приложение с тремя связанными моделями SQLAlchemy:
Customers → Orders → Order items. В нём можно войти, менять записи, редактировать
связи и смотреть сохранённые изменения. Всё работает локально с вымышленными данными в SQLite.
Приложение уже есть? Подключите существующие модели.
Для знакомства с интерфейсом откройте браузерное демо
с логином и паролем admin / admin.
Скачать и запустить
Нужны CPython 3.11–3.15 и uv
либо pip. Скачайте один файл quickstart.py
в пустой каталог. Клонировать репозиторий и устанавливать Node.js не требуется.
При запуске через uv заголовок скрипта установит quite-admin, FastAPI, SQLAlchemy и Uvicorn
в отдельное окружение:
curl -fsSLo quickstart.py https://raw.githubusercontent.com/lyova24/quite-admin/master/examples/quickstart.py
QUITE_ADMIN_PASSWORD='local-demo-only' uv run --script quickstart.py
Другой вариант — активировать своё виртуальное окружение Python и использовать pip:
pip install 'quite-admin[sqlalchemy,fastapi]>=0.8.17,<0.9' 'uvicorn>=0.30,<1'
QUITE_ADMIN_PASSWORD='local-demo-only' python quickstart.py
Откройте localhost:8000/admin/. Логин — admin,
пароль — local-demo-only. Сервер слушает 127.0.0.1.
Пройти полный сценарий
- Откройте Orders, затем Starter order. Измените Status с
pendingнаpaidи сохраните. - Откройте заказ снова. В редакторе связи Customer выберите Sam Lee и сохраните.
- Откройте Order Items → Notebook. Измените Quantity с
2на3и сохраните. - Откройте Activity history. Раскройте изменения: будут видны пользователь и значения до/после.
- В Customers создайте клиента, измените его и удалите через страницу подтверждения.
- Откройте Database schema: на схеме будут те же три модели и их связи.
Изменения сохраняются после перезапуска сервера. Начальные записи добавляются только
при пустой таблице Customers. Для упражнения с созданием и удалением используйте
отдельные пробные записи: исходные клиенты и заказы связаны внешними ключами БД.
В примере заказ может быть без клиента, поэтому эта связь допускает NULL.
Текущий адаптер запрещает замену обязательной связи; для упражнения с выбором
другого клиента используется необязательная связь.
Как модели превращаются в админку
Полный исходник
содержит обычные модели SQLAlchemy и lifespan FastAPI, который готовит учебную базу.
Внутри create_app() админка подключается так:
admin = Admin(
title="Orders back office",
auth=PasswordAuth.single_user("admin", password),
secret_key=os.getenv("QUITE_ADMIN_SECRET", secrets.token_urlsafe(48)),
adapters=[SQLAlchemyAdapter(sessions, base=Base)],
storage=data_dir / "history.sqlite3",
secure_cookies=False, # This example serves local HTTP only.
)
admin.mount_fastapi(app)
base=Base обнаруживает все три модели. Типы колонок задают формы, а связи SQLAlchemy —
редакторы связанных записей. Отдельные admin-классы, DTO и Pydantic-схемы не нужны.
Позже можно настроить таблицы и поля, не заменяя модели.
Локальные файлы и сессии
Пример пишет только в .quite-admin/quickstart/ рядом со скачанным скриптом:
| Файл | Содержимое |
|---|---|
shop.db |
Три таблицы моделей и ваши вымышленные записи |
history.sqlite3 |
Служебные данные админки и история действий |
Остановить сервер можно через Ctrl+C. При каждом запуске создаётся новый случайный
секрет сессии, поэтому потребуется войти снова. Чтобы сессии переживали перезапуск,
задайте QUITE_ADMIN_SECRET: постоянное случайное значение длиной не менее 32 байт.
Чтобы начать с чистых данных, остановите сервер и переместите каталог примера
.quite-admin/quickstart/ в другое место.
Подключить своё приложение
Добавьте quite-admin в существующее приложение, передав свои base и фабрику сессий.
Для Litestar используйте admin.mount_litestar(app); модели и настройка адаптера остаются теми же.
Другие ORM и SQL reflection описаны в интеграциях.
В примере один локальный аккаунт и cookies для HTTP. Для развёртывания приложения
пройдите руководство по развёртыванию, проверьте гарантии API
и матрицу совместимости БД.