Найти тему
IT - Это просто

Модели Django

Оглавление

Всем салют, друзья! Продолжаем наш курс:

Вступайте в группу - vk.com/mrsisadm - там больше интересного!!!

В этом руководстве мы узнаем о моделях в django.

Модели подключены к нашей базе данных. Мы также можем сказать, что модель содержит поля и поведение данных, которые мы хотим сохранить в базе данных. Обычно каждая модель связана с одной таблицей нашей базы данных.

Чтобы легче понять модели и предстоящие темы. Создадим новый проект. Где мы сделаем такой сайт:

-2

На картинке выше у нас есть веб-страница (домашняя страница), на которой мы собираемся показать некоторые работы, которые выполнялись в прошлом. Обычно каждый блок задания содержит изображение и некоторые детали. Где изображения и детали будут взяты из базы данных, что сделает наш сайт динамичным.

Для начала создайте новый проект (я создаю как my_project ).

Сначала мы создадим приложение для всех заданий, поэтому, если вы хотите показать эти задания в любом другом проекте, вы можете переместить это приложение в другой проект (как мы видели в предыдущей статье ).

Допустим, мы создали приложение с именем jobs , используя приведенную ниже команду. Откройте командную строку и перейдите в папку своего проекта, затем введите:

python manage.py startapp jobs

И не забудьте добавить путь к нашему недавно созданному приложению в файле settings.py в папке нашего проекта. (для этого следуйте статье, посвященной работе с приложениями ).

Примечание: используйте python3 для python 3 в linux

Надеюсь, вы создали проект и приложение с именем jobs.

Вот как выглядит папка нашего проекта.

-3

Как видите, после создания приложения мы автоматически создали файл с именем 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, что мы добавили новую модель

После создания любой модели мы должны что-то изменить в нашем проекте, чтобы наш проект узнал, что у нас есть новая модель для использования.

Перед тем, как сделать это, вы могли заметить некоторые предупреждения во время работы сервера, как показано ниже:

-4

Это показывает, что у нас есть 15 непримененных миграций для приложений. В качестве предупреждения он также показывает, как применить эти миграции.

Так что остановите свой сервер, введите команду ниже и перезапустите сервер.

python manage.py migrate

И после перезапуска вы можете увидеть, что теперь есть предупреждение.

-5

Перенос выполнен.

И еще одно, что нужно сделать перед добавлением нашей модели, - это добавить что-нибудь в наш файл settings.py в папку нашего проекта.

-6

Мы добавили MEDIA_ROOT и MEDIA_URL .

Здесь MEDIA_ROOT показывает, что если кто-то хочет сохранить какую-то информацию (изображение, видео и т. Д.), Это должно происходить внутри папки media .

И MEDIA_URL, показывающий, что если кто-то пытается получить доступ к изображению, где они его получат.

Но он все еще не догадывается, что мы добавили новую модель под названием Job . Чтобы узнать это, откройте терминал и введите:

python manage.py makemigrations

-7

Затем введите другую команду, указанную ниже:

python manage.py migrate

-8

Теперь мы в курсе, мигрировать нечего.

Вот и все о модели. Мы готовы работать с базой данных. По умолчанию будет использоваться база данных sqlite3. Преимущество использования моделей заключается в том, что, если мы захотим изменить базу данных позже, мы можем легко изменить ее, не меняя наш файл models.py. Он останется неизменным для всей базы данных.

В следующем уроке мы узнаем, как загружать изображения и резюме (текст) в базу данных с помощью этого модуля.