Всем салют, друзья! Продолжаем наш курс:
Вступайте в группу - vk.com/mrsisadm - там больше интересного!!!
В этом руководстве мы узнаем о моделях в django.
Модели подключены к нашей базе данных. Мы также можем сказать, что модель содержит поля и поведение данных, которые мы хотим сохранить в базе данных. Обычно каждая модель связана с одной таблицей нашей базы данных.
Чтобы легче понять модели и предстоящие темы. Создадим новый проект. Где мы сделаем такой сайт:
На картинке выше у нас есть веб-страница (домашняя страница), на которой мы собираемся показать некоторые работы, которые выполнялись в прошлом. Обычно каждый блок задания содержит изображение и некоторые детали. Где изображения и детали будут взяты из базы данных, что сделает наш сайт динамичным.
Для начала создайте новый проект (я создаю как my_project ).
Сначала мы создадим приложение для всех заданий, поэтому, если вы хотите показать эти задания в любом другом проекте, вы можете переместить это приложение в другой проект (как мы видели в предыдущей статье ).
Допустим, мы создали приложение с именем jobs , используя приведенную ниже команду. Откройте командную строку и перейдите в папку своего проекта, затем введите:
python manage.py startapp jobs
И не забудьте добавить путь к нашему недавно созданному приложению в файле settings.py в папке нашего проекта. (для этого следуйте статье, посвященной работе с приложениями ).
Примечание: используйте python3 для python 3 в linux
Надеюсь, вы создали проект и приложение с именем jobs.
Вот как выглядит папка нашего проекта.
Как видите, после создания приложения мы автоматически создали файл с именем models.py. Каждое приложение будет иметь отдельный файл модели. Таким образом, мы можем работать с нашей базой данных из этого файла модели.
Создайте модель в Django
Чтобы создать модель для хранения или получения информации из базы данных, создайте новый класс с любым именем, которое хотите, и унаследуйте класс Model. Теперь откройте этот файл модели и отредактируйте, как показано ниже:
from django.db import models
# Create your models here.
class Job(models.Model):
#for image
image = models.ImageField(upload_to='images/')
#for details
summary = models.CharField(max_length=200)
Здесь мы создаем класс внутри нашего файла models.py . Где мы используем ImageField для хранения изображения для задания и CharField для хранения сводки или деталей этой конкретной работы. Внутри ImageField атрибут upload_to = 'images /' обозначает каталог, в котором будут храниться наши изображения, а атрибут max_length = 200 означает, что мы можем хранить максимум 200 внутри нашего CharField, названного как summary.
Сообщите проекту Django, что мы добавили новую модель
После создания любой модели мы должны что-то изменить в нашем проекте, чтобы наш проект узнал, что у нас есть новая модель для использования.
Перед тем, как сделать это, вы могли заметить некоторые предупреждения во время работы сервера, как показано ниже:
Это показывает, что у нас есть 15 непримененных миграций для приложений. В качестве предупреждения он также показывает, как применить эти миграции.
Так что остановите свой сервер, введите команду ниже и перезапустите сервер.
python manage.py migrate
И после перезапуска вы можете увидеть, что теперь есть предупреждение.
Перенос выполнен.
И еще одно, что нужно сделать перед добавлением нашей модели, - это добавить что-нибудь в наш файл settings.py в папку нашего проекта.
Мы добавили MEDIA_ROOT и MEDIA_URL .
Здесь MEDIA_ROOT показывает, что если кто-то хочет сохранить какую-то информацию (изображение, видео и т. Д.), Это должно происходить внутри папки media .
И MEDIA_URL, показывающий, что если кто-то пытается получить доступ к изображению, где они его получат.
Но он все еще не догадывается, что мы добавили новую модель под названием Job . Чтобы узнать это, откройте терминал и введите:
python manage.py makemigrations
Затем введите другую команду, указанную ниже:
python manage.py migrate
Теперь мы в курсе, мигрировать нечего.
Вот и все о модели. Мы готовы работать с базой данных. По умолчанию будет использоваться база данных sqlite3. Преимущество использования моделей заключается в том, что, если мы захотим изменить базу данных позже, мы можем легко изменить ее, не меняя наш файл models.py. Он останется неизменным для всей базы данных.
В следующем уроке мы узнаем, как загружать изображения и резюме (текст) в базу данных с помощью этого модуля.