Уеб рамката на Django има архитектура на модел-изглед-шаблон (MVT), което я прави единствената рамка, която ще ви е необходима, за да създадете пълен уебсайт или уеб приложение. Тази рамка на Python ви позволява да създавате модели, които генерират бази данни и изобразяват динамични HTML шаблони в потребителския интерфейс, използвайки изгледи.
Силата на Django не е тайна; той е бърз, надежден, мащабируем и сигурен. Надеждността, както и мащабируемостта на този софтуер, разчитат на неговата MVT архитектура. И в тази статия ще научите как точно работи MVT архитектурата на Django.
Какво представлява моделът на Django?
Моделът в MVT архитектурата на Django дефинира структурата и поведението на данните, които искате да съхранявате чрез вашия уебсайт. Всеки модел на Django, който създавате, генерира съответна таблица на база данни, където всеки атрибут на модела става поле в таблицата.
Продължаваме с настройката от нашата уводна статия за Django, можете да създадете модел за продавачите. Продавачът може да има модел на продавача, който има лична информация, като име и данни за контакт, и свързан модел за артикулите, които всеки продавач продава.
Съществуващата примерна файлова структура на Django проекта
mysite/
mysite/
_pycache_
_init_.py
asgi.py
settings.py
urls.py
wsgi.py
продавачи/
миграция
_init_.py
admin.py
apps.py
models.py
test.py
views.py
db.sqlite3
manage.py
Създаване на Django модели
Ако погледнете под раздела за приложения на продавачите във файловата структура по-горе, ще видите файл, наречен models.py. Тук ще създадете всичките си модели на Django за секцията на продавачите на вашия уебсайт. Всеки модел, който създадете, ще бъде подклас API на модела на Django, поради което всеки Django генерира models.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)
артикул_количество = модели. цяло число()
артикул_цена = модели. DecimalField (max_digits=9, decimal_places=2)
артикул_описание = модели. Текстово поле()
Кодът по-горе е копие на актуализираното съдържание на model.py файл. Файлът сега създава два модела — Продавач и Продукт. Тези модели споделят връзка един към много, при която един продавач може да има много продукти в продажба. И така, моделът на продукта има a външен ключ от продавача и ан on_delete атрибут е зададен на модели. КАСКАДА, което означава, че когато изтриете продавач, автоматично ще изтриете всеки продукт, който го има първичен ключ като външен ключ.
Свързани: Научете Python и Django днес с тези невероятни курсове Може също да забележите, че всеки от моделите в кода по-горе няма първичен ключ. Това е така, защото Django автоматично ще генерира a първичен ключ ако не създадете изрично такъв.
Преди да можете да използвате всеки модел, който създавате, ще трябва да кажете на Django къде да го намери. За да направите това, ще трябва да отидете до settings.py файл и поставете името на модула, който съдържа models.py файл, в INSTALLED_APP раздел.
В примерния проект за тази статия, models.py файлът е в модула на продавачите. Следователно, актуализираната INSTALLED_APP раздел ще чете, както следва:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"продавачи",
]
С кода по-горе моделите в приложението на продавачите вече са видими за уебсайта на Django и сега можете да преминете към миграции.
Провеждането на миграции е важно, защото този процес е начин за разпространение на промените, които правите във вашите модели, към съответната схема на база данни. Така че всеки път, когато правите промени във вашия модел, ще трябва да проведете процеса на миграция, който включва две стъпки.
Първа стъпка е да направите миграции, което е команда, която създава миграции въз основа на промените, открити в models.py файл. За да започнете процеса на миграция, ще трябва да отворите терминала си, да отидете до директорията, в която има вашия проект Django, и да стартирате сървъра, като използвате следната команда:
python manage.py runserver
Когато сървърът работи в един терминал, отворете нов терминал и въведете следната команда:
python manage.py makemigrations
След изпълнение, терминалът ще произведе следния изход:
Миграции за „продавачи“:
sellers\migrations\0001_initial.py
- Създаване на модел Продавач
- Създаване на модел на продукт
Резултатът по-горе ясно показва, че вече имате миграции за два модела – продавача и продукта. Сега, ако отидете до папката за миграция в модула на вашите продавачи, ще видите, че вече има нов файл, наречен 0001_initial.py. В този файл ще намерите миграциите, които току-що създадохте.
Файлът 0001_initial.py
# Генерирано от Django 3.2.9 на 26.02.2022 16:06от django.db импортни миграции, модели
импортирайте django.db.models.deletion
клас Миграция (миграции. миграция):
начален = Вярно
зависимости = [
]
операции = [
миграции. Създай модел(
name='Продавач',
полета=[
('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)),
('contact_number', модели. CharField (max_length=30)),
],
),
миграции. Създай модел(
name='Продукт',
полета=[
('id', модели. BigAutoField (auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('item_name', модели. CharField (max_length=100)),
('item_qantity', модели. целочислено поле()),
('item_price', модели. DecimalField (десетични_места=2, максимални_цифри=9)),
('item_description', модели. Текстово поле()),
(„продавач“, модели. ForeignKey (on_delete=django.db.models.deletion. CASCADE, to='sellers.seller')),
],
),
]
Всеки път, когато правите нова миграция, папката за мигриране генерира нова версия на този файл.
Стъпка втора от процеса на миграция е най-накрая да мигрирате моделите. Това означава, че синхронизирате състоянието на базата данни с models.py файл, като използвате миграциите, които току-що създадохте в 0001_initial.py файл. Можете да завършите този процес (докато сървърът все още работи) със следната команда:
python manage.py мигрира
Какво представлява шаблонът на Django?
Шаблоните са начин за динамично генериране на HTML за вашия Django проект. Всеки шаблон на Django има .html разширение и комбинация от статично и динамично съдържание. Шаблоните на Django имат уникален синтаксис, който включва нови начини за създаване на променливи и тагове в HTML документ.
Създаване на Django шаблон
За да въведете шаблони в примерния уебсайт за електронна търговия за тази статия, ще трябва да създадете нова директория в модула на продавачите. Тази нова директория, наречена „шаблони“, ще бъде домът на всички HTML документи за приложението на продавачите – като се започне от началната страница.
Файлът sellers_home.html
Продавачи | Е-търговия
Добре дошли Продавачи!
След като създадете своите шаблони, ще трябва да ги направите видими за Django, като добавите директорията на вашите шаблони към ШАБЛОНИ раздел на settings.py файл. Актуализираният ШАБЛОНИ раздел ще изглежда по следния начин:
ШАБЛОНИ = [
{
'BACKEND': 'django.template.backends.django. DjangoTemplates',
'DIRS': [
# нов код, който сочи към местоположението на шаблоните
BASE_DIR / 'продавачи' / 'шаблони'
],
'APP_DIRS': Вярно,
'НАСТРОИКИ': {
'context_processors': [
'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 архитектурата на Django, шаблонът е безполезен, освен ако изгледът не го представи в потребителския интерфейс. Изгледът отговаря за приемането на уеб заявки и връщането на подходящи отговори (включително шаблони). В най-основната си форма изгледът е функция на Python, съхранявана в view.py файл на вашия проект Django.
Създаване на Django View
В view.py файлът е в модула на продавачите на примерния проект на Django. Когато продавач посети уебсайта ви, ще искате той да отиде на началната страница на продавача. Тази начална страница ще създадете с помощта на HTML шаблон, подобно на този, създаден в секцията за шаблони по-горе.
Файлът view.py
от django.shortcuts import render
def индекс (заявка):
връщане на изобразяване (заявка, 'sellers_home.html')
Изгледът по-горе приема заявка и връща HTML шаблона на продавачите. И така, всеки път, когато потребител посети (или поиска) http://127.0.0.1:8000/sellers/ те ще видят началната страница на продавачите. Това е след като създадете a urls.py файл в модула на продавачите.
Файлът на Sellers urls.py
от пътя за импортиране на django.urls
от импортирайте изгледи
url шаблони = [
път ('', views.index, name='index'),
]
И включете пътя към модула на продавачите urls.py файл в urls.py файл, намиращ се в основната директория на Django.
Файлът urls.py на уебсайта
от django.contrib администратор за импортиране
от django.urls import include, path
url шаблони = [
path('sellers/', include('sellers.urls')),
път ('admin/', admin.site.urls),
]
Сега, когато изгледът е настроен, можете да се уверите, че сървърът на Django все още работи и да отидете до него http://127.0.0.1:8000/sellers/ във вашия браузър, за да видите началната страница на продавачите.
Начална страница на продавачите
MVT архитектурата на Django срещу. MVC архитектура
MVT архитектурата на Django е доста различна от популярната MVC архитектура.
Шаблонният раздел на MVT архитектурата работи по същия начин като изгледа в MVC архитектурата, докато изгледът в MVT архитектурата показва качества, които са подобни на контролера в MVC архитектура. Въпреки това, моделите в двете архитектури работят идентично.
Приложете принципите за проектиране на модел-изглед-контролер към вашите собствени програми за незабавни резултати. Ето как да започнете.
Прочетете Следващото
- Програмиране
- Програмиране
- Python
Kadeisha Kean е разработчик на софтуер с пълен стек и писател по технически/технологии. Тя има отчетливата способност да опростява някои от най-сложните технологични концепции; производство на материал, който може лесно да бъде разбран от всеки начинаещ в технологиите. Тя е страстна да пише, разработва интересен софтуер и да пътува по света (чрез документални филми).
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате