Model Object Mapper или MOM для короткой, – это утилита управления Django для статистически создания и обновления записей базы данных. Он поддерживает реляционные поля и может работать с приложениями Django, не требуя никакой модификации. Это свободный и открытый источник и лицензирован под MIT лицензия .
Введение
Мама улучшает ваш рабочий процесс при работе с персональными проектами или частными наборами набора данных, которые не требуют для вставки или обновления форм для идентификатора пользователей. Он предлагает простой в использовании механизм сериализации, который синхронизирует вашу базу данных каждый раз, когда вы запускаете его.
Применение
В этом разделе объясняется некоторые из самых полезных функций мамы. Вы можете найти обширную документацию и QuickStart Guide здесь:
Моделирование после моделей
Чтобы мама распознать наши модели Django, мы сначала описываем, как мы будем использовать их в файле под названием Главная Мама Файл Отказ В этом файле мы скажем маме, какие файлы указывают на какие модели и как мы будем обрабатывать реляционные поля.
Чтобы проиллюстрировать точку, давайте предположим, что у нас есть следующая модель:
# File: home/models.py from django.db import models class Post(models.Model): slug = models.SlugField(primary_key=True, ) title = models.CharField(max_length=100, ) date = models.DateTimeField() content = models.TextField()
Теперь в Главная Мама Файл , ты можешь сделать:
# File: mom_data/mom.yaml mom: map: post: model: home.models.Post lookupField: slug
Здесь карта
ключ внутри Мама
Ключ определяет пост
Ключ, который говорит мама, как обрабатывать Home.models. Пост
модель. После этого мама находит файлы, имена которых начинаются с пост
и продолжайте с ценностью, которое он присваивает Slug
поле Home.models. Пост
и, наконец, закончите с форматом файла мамы. Когда мы приносим все три вместе, мы получаем что-то подобное: post.slug-field-value.mom.yaml
Отказ
Внутри предметов
Так как мы создали Главная Мама Файл Теперь мы можем сосредоточиться на объектах (или файлах сериализации). В этих файлах мы представляем строки базы данных, создавая и обновляем их, когда они меняются.
Теперь, давайте предположим, что мы создаем post.slug-field-value.mom.yaml
Файл, о котором мы говорили:
# File: mom_data/post.slug-field-value.mom.yaml field: title: My Awesome Post date: 2021-02-23 10:25:00+3 content: This is an awesome post.
Значение Slug
поле Значение слизняки
Так как он исходит из имени файла.
Теперь вы можете запустить:
$ ./manage.py mom
В результате мама найдет этот файл и использует Slug
поле и его значение для запроса для существующей строки. Если есть один, мама будет сравнивать ее поля для изменений. Если нет ни одного, мама создаст новый в базе данных.
Одна полезная функция, которую вы можете использовать здесь, это параметры, включаемые, добавив пространство после имени поля. Например, если вы работаете с файлом Markdown и хотите использовать его в качестве значения для Содержание
поле, вы можете сделать это:
# File: mom_data/post.slug-field-value.mom.yaml field: # ... content file: content.md
и внутри Content.md
файл:
[comment]: # File: mom_data/content.md This is an awesome post.
Таким образом, вы можете работать с разными форматами файлов за пределами файлов YAML.
Мама имеет много функций, подобных тому, что вы можете использовать прямо сейчас и тщательно объяснены в документации. Реляционные поля могут быть веской причиной, чтобы проверить это.
Заключение
Мама может улучшить ваш рабочий процесс с гибкостью, которую она обеспечивает и может быть полезным во многих отношениях.
Оригинал: “https://dev.to/tasali/meet-model-object-mapper-a-database-serialization-utility-for-django-1009”