Веб-фреймворк Django имеет архитектуру модель-представление-шаблон (MVT), что делает его единственным фреймворком, который вам понадобится для создания полноценного веб-сайта или веб-приложения. Эта среда Python позволяет создавать модели, которые генерируют базы данных и отображают динамические HTML-шаблоны в пользовательском интерфейсе с помощью представлений.

Сила Джанго ни для кого не секрет; это быстро, надежно, масштабируемо и безопасно. Надежность, а также масштабируемость этого программного обеспечения зависят от его архитектуры MVT. И в этой статье вы узнаете, как именно работает архитектура Django MVT.

Что такое модель Джанго?

Модель в архитектуре Django MVT определяет структуру и поведение данных, которые вы хотите хранить на своем веб-сайте. Каждая создаваемая вами модель Django создает соответствующую таблицу базы данных, где каждый атрибут модели становится полем в таблице.

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

instagram viewer

Существующая файловая структура проекта Django

мой сайт/
мой сайт/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
продавцы/
миграция
_init_.py
admin.py
приложения.py
модели.py
test.py
просмотры.py
db.sqlite3
управлять.py

Создание моделей Джанго

Если вы заглянете в раздел приложений продавцов в файловой структуре выше, вы увидите файл с именем модели.py. Здесь вы создадите все свои модели Django для раздела продавцов вашего сайта. Каждая создаваемая вами модель будет подклассом API модели Django, поэтому каждый сгенерированный Django модели.py файл имеет импорт моделей по умолчанию.

Файл models.py

Из моделей импорта django.db

# Создавайте свои модели здесь.

Класс Продавец (модели. Модель):
имя_имя = модели. CharField (max_length=30)
фамилия = модели. CharField (max_length=30)
контакт_номер = модели. CharField (max_length=30)

Класс Продукт (модели. Модель):
продавец = модели. ForeignKey (Продавец, on_delete=models. КАСКАД)
имя_элемента = модели. CharField (max_length=100)
item_qantity = модели. ЦелоеПоле()
item_price = модели. Десятичное поле (max_digits=9, decimal_places=2)
item_description = модели. Текстовое поле()

Приведенный выше код является копией обновленного содержимого файла модель.py файл. Теперь файл создает две модели — Seller и Product. Эти модели имеют отношение «один ко многим», когда у одного продавца может продаваться много товаров. Итак, модель Product имеет внешний ключ от продавца и on_delete атрибут установлен на модели. КАСКАД, что означает, что когда вы удаляете продавца, вы автоматически удаляете все товары, у которых есть этот первичный ключ как внешний ключ.

Связанный: Изучите Python и Django сегодня с помощью этих удивительных курсов Вы также можете заметить, что каждая из моделей в приведенном выше коде не имеет первичного ключа. Это связано с тем, что Django автоматически сгенерирует первичный ключ если вы не создадите его явно.

Прежде чем вы сможете использовать любую созданную вами модель, вам нужно сообщить Django, где ее найти. Для этого вам необходимо перейти на settings.py файл и вставьте имя модуля, который содержит модели.py файл, в INSTALLED_APP раздел.

В примере проекта для этой статьи модели.py файл находится в модуле продавцов. Таким образом, обновленный INSTALLED_APP раздел будет выглядеть следующим образом:

УСТАНОВЛЕННЫЕ_ПРИЛОЖЕНИЯ = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
«продавцы»,
]

С приведенным выше кодом модели в приложении продавцов теперь видны на веб-сайте Django, и теперь вы можете перейти к миграции.

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

Шаг первый — выполнить миграции, то есть команду, которая создает миграции на основе изменений, обнаруженных в модели.py файл. Чтобы начать процесс миграции, вам нужно открыть терминал, перейти в каталог, в котором находится ваш проект Django, и запустить сервер с помощью следующей команды:

сервер запуска python manage.py

Когда сервер работает в одном терминале, откройте новый терминал и введите следующую команду:

миграция python manage.py

После выполнения терминал выдаст следующий вывод:

Миграции для "продавцов":
продавцы\миграции\0001_initial.py
- Создать модель продавца
- Создать модель продукта

В приведенном выше выводе четко указано, что теперь у вас есть миграции для двух моделей — продавца и продукта. Теперь, если вы перейдете к папке миграции в модуле ваших продавцов, вы увидите, что теперь в ней есть новый файл с именем 0001_initial.py. В этом файле вы найдете только что созданные вами миграции.

Файл 0001_initial.py

# Сгенерировано Django 3.2.9 26 февраля 2022 г., 16:06

из django.db импортировать миграции, модели
импортировать django.db.models.deletion

класс Миграция (migrations. Миграция):

начальный = Истина

зависимости = [
]

операции = [
миграции. СоздатьМодель(
имя = 'Продавец',
поля=[
('id', модели. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('first_name', модели. CharField (max_length=30)),
('last_name', модели. CharField (max_length=30)),
('контактный_номер', models. CharField (max_length=30)),
],
),
миграции. СоздатьМодель(
имя = 'Товар',
поля=[
('id', модели. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('имя_предмета', models. CharField (max_length=100)),
('item_qantity', модели. целочисленное поле()),
('цена_предмета', models. DecimalField (decimal_places=2, max_digits=9)),
('item_description', models. Текстовое поле()),
(«продавец», модели. Внешний ключ (on_delete=django.db.models.deletion. КАСКАД, to='sellers.seller')),
],
),
]

Каждый раз, когда вы выполняете новую миграцию, папка миграции создает новую версию этого файла.

Второй шаг процесса миграции — это окончательная миграция моделей. Это означает, что вы синхронизируете состояние базы данных с модели.py файл, используя миграции, которые вы только что создали в 0001_initial.py файл. Вы можете завершить этот процесс (пока сервер еще работает) с помощью следующей команды:

python manage.py миграция

Что такое шаблон Джанго?

Шаблоны — это способ динамической генерации HTML для вашего проекта Django. Каждый шаблон Django имеет .html расширение и сочетание статического и динамического контента. Шаблоны Django имеют уникальный синтаксис, включающий новые способы создания переменных и тегов в HTML-документе.

Создание шаблона Django

Чтобы добавить шаблоны в пример веб-сайта электронной коммерции для этой статьи, вам необходимо создать новый каталог в модуле продавцов. Этот новый каталог под названием «templates» станет домом для всех HTML-документов для приложения продавца, начиная с домашней страницы.

Файл sells_home.html





Продавцы | Электронная коммерция


Добро пожаловать продавцы!




После того, как вы создали свои шаблоны, вам нужно сделать их видимыми для Django, добавив каталог ваших шаблонов в ШАБЛОНЫ раздел settings.py файл. Обновленный ШАБЛОНЫ раздел будет выглядеть следующим образом:

ШАБЛОНЫ = [
{
'БЭКЭНД': 'django.template.backends.django. ДжангоШаблоны,
'КАТАЛОГИ': [
# новый код, указывающий на расположение шаблонов
BASE_DIR/'продавцы'/'шаблоны'
],
'APP_DIRS': правда,
'ОПЦИИ': {
'контекстные_процессоры': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]

Теперь, когда Django знает, где найти шаблоны для веб-сайта, вы можете продолжить и отобразить их в пользовательском интерфейсе с помощью представления.

Что такое взгляд Джанго?

Представление — это второй уровень архитектуры Django MVT, шаблон бесполезен, если представление не отображает его в пользовательском интерфейсе. Представление отвечает за прием веб-запросов и возврат соответствующих ответов (включая шаблоны). В своей самой простой форме представление представляет собой функцию Python, хранящуюся в view.py файл вашего проекта Django.

Создание представления Джанго

То view.py находится в модуле продавца примера проекта Django. Когда продавец посещает ваш сайт, вы хотите, чтобы он перешел на домашнюю страницу продавца. Эту домашнюю страницу вы создадите с помощью шаблона HTML, очень похожего на тот, который был создан в разделе шаблонов выше.

Файл view.py

из django.shortcuts импортировать рендеринг

индекс защиты (запрос):
вернуть рендеринг (запрос, 'sellers_home.html')

Представление выше принимает запрос и возвращает HTML-шаблон продавца. Таким образом, каждый раз, когда пользователь посещает (или запрашивает) http://127.0.0.1:8000/sellers/ они увидят домашнюю страницу продавца. Это после создания urls.py файл в модуле продавцов.

Файл продавцов urls.py

из пути импорта django.urls
от. импорт просмотров

URL-шаблоны = [
путь('', views.index, имя='индекс'),
]

И укажите путь к модулю продавцов urls.py файл в urls.py файл, расположенный в основном каталоге Django.

Файл веб-сайта urls.py

из администратора импорта django.contrib
из импорта django.urls включить, путь

URL-шаблоны = [
путь('sellers/', включить('sellers.urls')),
путь('admin/', admin.site.urls),
]

Теперь, когда представление настроено, вы можете убедиться, что сервер Django все еще работает, и перейти к http://127.0.0.1:8000/sellers/ в браузере, чтобы увидеть домашнюю страницу продавца.

Домашняя страница продавцов

Архитектура Django MVT vs. Архитектура MVC

Архитектура Django MVT сильно отличается от популярной архитектуры MVC.

Раздел шаблона архитектуры MVT работает почти так же, как представление в архитектуре MVC. в то время как представление в архитектуре MVT отображает качества, аналогичные контроллеру в MVC. архитектура. Однако модели в обеих архитектурах работают одинаково.

Введение в архитектуру MVC: объяснение примеров

Применяйте принципы проектирования Модель-Представление-Контроллер к вашим собственным программам для немедленных результатов. Вот как начать.

Читать далее

ДелитьсяТвитнутьЭл. адрес
Похожие темы
  • Программирование
  • Программирование
  • Питон
Об авторе
Кадейша Кин (опубликовано 46 статей)

Кадейша Кин (Kadeisha Kean) — разработчик программного обеспечения полного стека и технический/технологический писатель. У нее есть явная способность упрощать некоторые из самых сложных технологических концепций; производство материала, который может быть легко понят любым новичком в технологии. Она увлечена писательством, разработкой интересного программного обеспечения и путешествиями по миру (с помощью документальных фильмов).

Еще от Кадейши Кин

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться