1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-baserow

Клонировать/Скачать
introduction.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.06.2025 16:02 92285f5

Введение в Baserow

Архитектура

Baserow состоит из двух основных компонентов:

  1. Бэкенд — это приложение на Python Django, которое предоставляет REST API. Это ядро Baserow, и у него нет пользовательского интерфейса. Спецификация API доступна здесь. Постоянное состояние хранится в базе данных PostgreSQL.
  2. Веб-фронтенд — это приложение, которое служит пользовательским интерфейсом для бэкенда и создано с использованием NuxtJS и Vue.js. Оно взаимодействует с бэкендом через REST API.

server_diagram

Бэкенд

Бэкенд состоит из приложений core, api и database. Пакет также содержит базовые настройки, которые можно расширить. REST API написан как независимый компонент, который не требуется для запуска Baserow, но его использование настоятельно рекомендуется. То же самое относится и к приложению базы данных, которое написано как плагин для Baserow. Без него у вас будет только ядро, которое имеет функциональность, такую как аутентификация, рабочие пространства и абстракция приложений.

Обработчики

Если вы посмотрите на код API-представлений, вы заметите, что они используют классы, такие как CoreHandler, TableHandler, FieldHandler и т.д. API-представления фактически являются оболочкой REST API вокруг этих обработчиков, которые выполняют основную работу. Причина такого выбора заключается в том, что если мы когда-либо захотим реализовать API на основе веб-сокетов, SOAP API или любой другой API, мы также сможем построить это вокруг тех же обработчиков. Таким образом, нам никогда не придется писать код дважды. Это также полезно, если вы хотите выполнить что-то через командную строку. Например, если вы хотите создать новое рабочее пространство, вы можете сделать следующее.

from django.contrib.auth import get_user_model
from baserow.core.handler import CoreHandler

User = get_user_model()
user = User.objects.get(pk=1)
workspace = CoreHandler().create_workspace(user, name='Пример рабочего пространства')

Веб-фронтенд

Веб-фронтенд состоит из модулей core и database. Пакет также содержит некоторые базовые конфигурации, которые можно расширить. Это фактически удобная оболочка вокруг бэкенда, которая может работать в вашем браузере. Он создан с использованием NuxtJS.

Стилевое руководство

Стилевое руководство с примерами всех компонентов доступно по адресу https://baserow.io/style-guide. Или если вы хотите посмотреть его в локальной среде, используйте http://localhost:8000/style-guide.

Концепции

Рабочие пространства

Рабочее пространство может содержать несколько приложений. Оно может использоваться для определения компании, и возможно приглашение дополнительных пользователей в рабочее пространство. Каждый пользователь в рабочем пространстве имеет доступ ко всем приложениям в этом рабочем пространстве. Живое сотрудничество позволяет пользователям сразу видеть изменения, сделанные другими пользователями, без необходимости обновления страницы. Рабочие пространства можно легко создавать, редактировать и удалять через baserow.core.handler.CoreHandler и через REST API.

Приложения

Приложение — это более абстрактная сущность, которую можно добавить в рабочее пространство. По умолчанию включено приложение базы данных. Через кнопку "создать новое" в боковой панели можно создать новый экземпляр приложения для выбранного рабочего пространства. При нажатии на неё откроется контекстное меню со всеми типами приложений. Плагины могут вводить новые типы приложений. Приложения можно легко создавать, редактировать и удалять через baserow.core.handler.CoreHandler и через REST API.

Плагин базы данных

Больше информации о концепциях приложения базы данных можно найти на странице введения к плагину базы данных.

Переменные окружения

В сочетании с настройками по умолчанию и конфигурацией принимаются следующие переменные окружения.

  • DATABASE_NAME (по умолчанию baserow): Имя базы данных PostgreSQL.
  • DATABASE_USER (по умолчанию baserow): Имя пользователя для базы данных PostgreSQL.
  • DATABASE_PASSWORD (по умолчанию baserow): Пароль для базы данных PostgreSQL.
  • DATABASE_HOST (по умолчанию db): Имя хоста сервера PostgreSQL.
  • DATABASE_PORT (по умолчанию 5432): Порт сервера PostgreSQL.
  • DOWNLOAD_FILE_VIA_XHR (по умолчанию 0): Установите значение 1, чтобы заставить ссылки для загрузки файлов использовать XHR-запрос для обхода Content-Disposition: inline, который нельзя переопределить другим способом. Если ваши файлы хранятся на другом источнике, вам также необходимо добавить заголовки CORS на ваш сервер.
  • BASEROW_DISABLE_GOOGLE_DOCS_FILE_PREVIEW (по умолчанию ``): Установите значение true или `1`, чтобы отключить предварительный просмотр файлов Google Docs в веб-фронтенде.
  • PUBLIC_BACKEND_URL (по умолчанию http://localhost:8000): Открытый URL-адрес бэкенда. Для среды разработки это http://localhost:8000, но если вы измените порт на 9000, он будет http://localhost:9000. Вы должны иметь возможность открыть этот URL-адрес в вашем браузере.
  • PRIVATE_BACKEND_URL (по умолчанию http://backend:8000): Не только браузер, но и сервер веб-фронтенда должны иметь возможность отправлять HTTP-запросы к бэкенду. Возможно, у них нет доступа к PUBLIC_BACKEND_URL или есть более прямой маршрут (например, из контейнера в контейнер вместо интернета). В случае среды разработки контейнер бэкенда доступен через имя хоста backend, и поскольку сервер также запущен на порту 8000 внутри контейнера, приватный URL-адрес бэкенда должен быть http://backend:8000.
  • PUBLIC_WEB_FRONTEND_URL (по умолчанию http://localhost:3000): Открытый URL-адрес веб-фронтенда. Для среды разработки это http://localhost:3000, но вы можете изменить порт на любой желаемый. Этот URL-адрес доступен в вашем браузере.
  • FROM_EMAIL (по умолчанию no-reply@localhost): Адрес электронной почты "от" для писем, отправляемых платформой. Например, когда пользователь запрашивает восстановление пароля.
  • INITIAL_TABLE_DATA_LIMIT (по умолчанию не установлено): Указывает начальный лимит данных таблицы. Например, если указано 100, то будет невозможно импортировать CSV-файл с более чем 100 строками.
  • REDIS_HOST (по умолчанию redis): Имя хоста сервера Redis.
  • REDIS_PORT (по умолчанию 6379): Порт сервера Redis.
  • REDIS_USER (по умолчанию ``): Имя пользователя сервера Redis.
  • REDIS_PASSWORD (по умолчанию ``): Пароль сервера Redis.
  • REDIS_PROTOCOL (по умолчанию redis): Протокол Redis. Может быть либо redis, либо rediss.
  • EMAIL_SMTP (по умолчанию ``): Указание любого значения отличного от пустой строки включит SMTP-почту.
  • EMAIL_SMTP_HOST (по умолчанию localhost): Имя хоста SMTP-сервера.
  • EMAIL_SMTP_USE_TLS (по умолчанию ``): Указание любого значения отличного от пустой строки включит подключение к SMTP-серверу через TLS.
  • EMAIL_SMPT_USE_TLS (по умолчанию ``): Неправильное написание переменной EMAIL_SMTP_USE_TLS как `EMAIL_SMPT_USE_TLS` было исправлено в #247. Однако, `EMAIL_SMPT_USE_TLS` все еще поддерживается для тех, кто может продолжать использовать его в своей среде. Рекомендуется использовать правильное имя переменной при работе с последней версией, так как поддержка этого имени может быть удалена в будущем.
  • EMAIL_SMTP_PORT (по умолчанию 25): Порт SMTP-сервера.
  • EMAIL_SMTP_USER (по умолчанию ``): Имя пользователя SMTP-сервера.
  • EMAIL_SMTP_PASSWORD (по умолчанию ``): Пароль SMTP-сервера.
  • HOURS_UNTIL_TRASH_PERMANENTLY_DELETED (по умолчанию 72): Количество часов, в течение которых удаленные элементы будут сохраняться до их окончательного удаления.
  • BASEROW_MAX_IMPORT_FILE_SIZE_MB (по умолчанию 512Mb): Максимальный размер файла, который можно импортировать, в мегабайтах.
  • DISABLE_ANONYMOUS_PUBLIC_VIEW_WS_CONNECTIONS (по умолчанию ``): Если установлено значение 'true', отключит отправку событий в реальном времени на общедоступные представления.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-baserow.git
git@api.gitlife.ru:oschina-mirror/mirrors-baserow.git
oschina-mirror
mirrors-baserow
mirrors-baserow
develop