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

OSCHINA-MIRROR/mirrors-baserow

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

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

Плагин базы данных установлен по умолчанию в каждой копии Baserow. Без него вы не сможете ничего сделать с приложением. Кратко говоря, это плагин, который позволяет создавать базу данных с интерфейсом, похожим на электронную таблицу. Вы заметите, что все построено вокруг этой концепции.

Таблицы

Каждое приложение базы данных может иметь несколько таблиц, и таблица — это то, что вы можете предположить. Она содержит строки и столбцы, но в Baserow столбцы называются полями. У каждой таблицы есть собственное представление схемы в базе данных PostgreSQL.

Существует класс обработчика baserow.contrib.database.table.handler.TableHandler, который имеет множество методов, связанных с созданием, изменением и удалением таблиц. Другой приятной особенностью является то, что модель Django таблицы может легко быть сгенерирована. Допустим, у вас есть следующая таблица с идентификатором id, и вы хотите выбрать все данные.

Название модели Бренд Цена
3 Series BTW 30000
A4 Audi 25000
Model 3 Tesla 50000
from baserow.contrib.database.table.models import Table

cars_table = Table.objects.get(pk=ID_REFERENCED_TABLE_ABOVE)
# Если вы установите атрибут attribute_names в True, имя атрибута будет соответствовать имени поля, предоставленному пользователем, вместо field_{id}
cars_model = cars_table.get_model(attribute_names=True)

for car in cars_model.objects.all():
    print(car.id, car.model_name, car.price)

# Результат:
# 1 3 Series 30000
# 2 A4 25000
# 3 Model 3 50000

Поля

Поле фактически является определением столбца таблицы. Оно принимает только определенный тип данных для значений ячеек. Например, поле может быть числовым полем, которое принимает два знака после запятой. Если новое поле добавляется к таблице, оно также добавляется как столбец к представлению таблицы в базе данных. Имя столбца в базе данных будет field_{id}. Поля можно создавать, изменять и удалять через baserow.contrib.database.fields.handler.FieldHandler и через REST API. Несколько типов полей включены по умолчанию.

Типы полей можно добавлять через плагины. Подробнее об этом на странице плагина типов полей.

  • text: Однострочный текст.
  • long_text: Многострочный текст.
  • number: Число, которое может быть отрицательным и может быть десятичным.
  • boolean: Принимает только значения true или false.
  • date: Поле даты в формате Европа, ISO или США, которое может включать время в формате am/pm.

Просмотры

Просмотры определяют, как данные таблицы отображаются пользователю. По умолчанию включен тип просмотра grid, который отображает данные в интерфейсе, похожем на электронную таблицу. К каждой таблице можно добавить несколько просмотров, и каждый просмотр имеет свои настройки. Например, если у вас есть два сеточных просмотра A и B одной и той же таблицы данных, и вы измените ширину столбца в сетке A, то это изменение будет применено только к сетке A, а не к сетке B. Просмотры можно создавать, изменять и удалять через baserow.contrib.database.views.handler.ViewHandler и через REST API.

Типы просмотров можно добавлять через плагины. Подробнее об этом на странице плагина типов просмотров.

Строки

Строки — это данные таблицы. Принимаемые значения зависят от полей таблицы. Данные хранятся в представлении таблицы в базе данных. В приведенном ниже примере мы добавим одну строку данных в таблицу, которую только что создали через интерактивную оболочку Python. Тот же результат можно было бы достичь через REST API.

from django.contrib.auth import get_user_model 
from baserow.contrib.database.table.models import Table
from baserow.contrib.database.fields.handler import FieldHandler
from baserow.contrib.database.rows.handler import RowHandler

User = get_user_model()
user = User.objects.get(pk=1)
table = Table.objects.get(pk=10)

name = FieldHandler().create_field(user, table, 'text', name='Name')
price = FieldHandler().create_field(user, table, 'number', name='Price')
row = RowHandler().create_row(user, table, {
    f'field_{name.id}': 'Smartphone',
    f'field_{price.id}': 300
})

model = table.get_model()
rows = model.objects.all()

print(rows[0].name)
print(rows[0].price)

# Что даст результат:
# Smartphone
# 300

Опубликовать ( 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