Дјанго веб оквир има архитектуру модел-виев-темплате (МВТ), што га чини јединим оквиром који ће вам требати да направите комплетну веб локацију или веб апликацију. Овај Питхон оквир вам омогућава да креирате моделе који генеришу базе података и приказују динамичке ХТМЛ шаблоне у корисничком интерфејсу користећи погледе.

Моћ Дјанга није тајна; брз је, поуздан, скалабилан и безбедан. Поузданост, као и скалабилност овог софтвера, ослања се на његову МВТ архитектуру. А у овом чланку ћете научити како тачно функционише Дјанго МВТ архитектура.

Шта је Дјангов модел?

Модел у Дјанго МВТ архитектури дефинише структуру и понашање података које желите да ускладиштите преко своје веб локације. Сваки Дјанго модел који креирате генерише одговарајућу табелу базе података, где сваки атрибут модела постаје поље у табели.

Настављамо са подешавањем из нашег уводни чланак о Дјангу, можете креирати модел за продавце. Продавац може имати модел продавца који има личне податке, као што су име и контакт детаљи, и сродни модел за артикле које сваки продавац продаје.

instagram viewer

Постојећи пример структуре датотеке Дјанго пројекта

мој сајт/
мој сајт/
_пицацхе_
_инит_.пи
асги.пи
сеттингс.пи
урлс.пи
всги.пи
продавци/
миграције
_инит_.пи
админ.пи
аппс.пи
модели.пи
тест.пи
виевс.пи
дб.склите3
управљај.пи

Креирање Дјанго модела

Ако погледате испод одељка апликације продаваца у структури датотеке изнад, видећете датотеку под називом модели.пи. Овде ћете креирати све своје Дјанго моделе за одељак продаваца на вашој веб локацији. Сваки модел који креирате биће подкласа АПИ Дјанго модела, због чега је сваки Дјанго генерисан модели.пи датотека има подразумевани увоз модела.

Датотека моделс.пи

Из дјанго.дб модела увоза

# Креирајте своје моделе овде.

класа Продавац (модели. модел):
име = модели. ЦхарФиелд (мак_ленгтх=30)
презиме = модели. ЦхарФиелд (мак_ленгтх=30)
контакт_број = модели. ЦхарФиелд (мак_ленгтх=30)

класа Производ (модели. модел):
продавац = модели. ФореигнКеи (Продавац, он_делете=модели. ЦАСЦАДЕ)
итем_наме = модели. ЦхарФиелд (мак_ленгтх=100)
количина_ставке = модели. ИнтегерФиелд()
итем_прице = модели. Децимално поље (мак_дигитс=9, децимал_плацес=2)
итем_десцриптион = модели. Текстуално поље()

Код изнад је копија ажурираног садржаја модел.пи фајл. Датотека сада креира два модела — Продавац и Производ. Ови модели деле однос један-према-више, где један продавац може да има много производа на распродаји. Дакле, модел производа има а страни кључ од продавца и ан он_делете атрибут постављен на модели. ЦАСЦАДЕ, што значи да када избришете продавца, аутоматски ћете избрисати сваки производ који то има Примарни кључ као страни кључ.

Повезан: Научите Питхон и Дјанго данас са овим невероватним курсевима Такође можете приметити да сваки од модела у коду изнад нема примарни кључ. То је зато што ће Дјанго аутоматски генерисати а Примарни кључ ако га изричито не креирате.

Пре него што будете могли да користите било који модел који креирате, мораћете да кажете Дјангу где да га пронађе. Да бисте то урадили, мораћете да пређете на сеттингс.пи датотеку и убаците назив модула који садржи модели.пи фајл, у ИНСТАЛЛЕД_АПП одељак.

У узорку пројекта за овај чланак, модели.пи датотека се налази у модулу продаваца. Стога, ажурирани ИНСТАЛЛЕД_АПП одељак ће гласити како следи:

ИНСТАЛЛЕД_АППС = [
'дјанго.цонтриб.админ',
'дјанго.цонтриб.аутх',
'дјанго.цонтриб.цонтенттипес',
'дјанго.цонтриб.сессионс',
'дјанго.цонтриб.мессагес',
'дјанго.цонтриб.статицфилес',
'продавци',
]

Са горњим кодом, модели у апликацији продаваца су сада видљиви на Дјанго веб локацији, а сада можете да пређете на миграције.

Спровођење миграција је важно јер је овај процес начин ширења промена које направите у својим моделима на одговарајућу шему базе података. Дакле, сваки пут када унесете измене у свој модел, мораћете да спроведете процес миграције - који укључује два корака.

Први корак је да направите миграције, што је команда која креира миграције на основу промена откривених у модели.пи фајл. Да бисте започели процес миграције, мораћете да отворите свој терминал, идите до директоријума који садржи ваш Дјанго пројекат и покренете сервер помоћу следеће команде:

питхон манаге.пи рунсервер

Када сервер ради на једном терминалу, отворите нови терминал и унесите следећу команду:

питхон манаге.пи макемигратионс

Након извршења, терминал ће произвести следећи излаз:

Миграције за 'продавце':
селлерс\мигратионс\0001_инитиал.пи
- Креирајте модел продавца
- Креирајте модел производа

Излаз изнад јасно каже да сада имате миграције за два модела — продавца и производ. Сада, ако одете до фасцикле за миграцију у модулу ваших продаваца, видећете да сада има нову датотеку под називом 0001_инитиал.пи. У овој датотеци ћете пронаћи миграције које сте управо креирали.

Датотека 0001_инитиал.пи

# Направио Дјанго 3.2.9 26.02.2022 16:06

из дјанго.дб увоз миграције, модели
импорт дјанго.дб.моделс.делетион

класа Миграције (миграције. Миграција):

почетно = Тачно

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

операције = [
миграције. ЦреатеМодел(
наме='Продавац',
поља=[
('ид', модели. БигАутоФиелд (ауто_цреатед=Тачно, примарни_кључ=Тачно, сериализе=Фалсе, вербосе_наме='ИД')),
('фирст_наме', модели. ЦхарФиелд (мак_ленгтх=30)),
('презиме', модели. ЦхарФиелд (мак_ленгтх=30)),
('цонтацт_нумбер', модели. ЦхарФиелд (мак_ленгтх=30)),
],
),
миграције. ЦреатеМодел(
наме='Производ',
поља=[
('ид', модели. БигАутоФиелд (ауто_цреатед=Тачно, примарни_кључ=Тачно, сериализе=Фалсе, вербосе_наме='ИД')),
('итем_наме', модели. ЦхарФиелд (мак_ленгтх=100)),
('итем_кантити', модели. ИнтегерФиелд()),
('итем_прице', модели. Децимално поље (децимална_места=2, максималне_цифре=9)),
('итем_десцриптион', модели. Текстуално поље()),
('продавац', модели. ФореигнКеи (он_делете=дјанго.дб.моделс.делетион. ЦАСЦАДЕ, то='селлерс.селлер')),
],
),
]

Сваки пут када направите нову миграцију, фасцикла за миграцију генерише нову верзију ове датотеке.

Други корак процеса миграције је да коначно пренесете моделе. То значи да синхронизујете стање базе података са модели.пи датотеку, користећи миграције које сте управо креирали у 0001_инитиал.пи фајл. Можете да завршите овај процес (док сервер још увек ради) следећом командом:

питхон манаге.пи мигрира

Шта је Дјанго шаблон?

Шаблони су начин да се динамички генерише ХТМЛ за ваш Дјанго пројекат. Сваки Дјанго шаблон има .хтмл проширење и комбинација статичког и динамичког садржаја. Дјанго шаблони имају јединствену синтаксу која укључује нове начине креирања променљивих и ознака у ХТМЛ документу.

Креирање Дјанго шаблона

Да бисте увели шаблоне на пример веб локације за е-трговину за овај чланак, мораћете да креирате нови директоријум у модулу продаваца. Овај нови директоријум под називом „шаблони“ биће дом свих ХТМЛ докумената за апликацију продаваца – почевши од почетне странице.

Датотека селлерс_хоме.хтмл





Селлерс | Е-трговина


Добродошли продавци!




Након што креирате своје шаблоне, мораћете да их учините видљивим за Дјанго додавањем директоријума шаблона у ШАБЛОНИ одељак на сеттингс.пи фајл. Тхе упдатед ШАБЛОНИ одељак ће изгледати овако:

ШАБЛОНИ = [
{
'БАЦКЕНД': 'дјанго.темплате.бацкендс.дјанго. ДјангоТемплатес',
'ДИРС': [
# нови код који указује на локацију шаблона
БАСЕ_ДИР / 'продавци' / 'шаблони'
],
'АПП_ДИРС': Тачно,
'ОПЦИЈЕ': {
'цонтект_процессорс': [
'дјанго.темплате.цонтект_процессорс.дебуг',
'дјанго.темплате.цонтект_процессорс.рекуест',
'дјанго.цонтриб.аутх.цонтект_процессорс.аутх',
'дјанго.цонтриб.мессагес.цонтект_процессорс.мессагес',
],
},
},
]

Сада када Дјанго зна где да пронађе шаблоне за веб локацију, можете наставити и приказати их у корисничком интерфејсу користећи приказ.

Шта је Дјангов поглед?

Поглед је други слој Дјанго МВТ архитектуре, шаблон је бескористан осим ако га поглед не прикаже корисничком интерфејсу. Приказ је одговоран за прихватање веб захтева и враћање одговарајућих одговора (укључујући шаблоне). У свом најосновнијем облику, поглед је Питхон функција, ускладиштена у виев.пи датотеку вашег Дјанго пројекта.

Креирање Дјанго Виев-а

Тхе виев.пи датотека се налази у модулу продаваца узорка Дјанго пројекта. Када продавац посети вашу веб локацију, желећете да оде на почетну страницу продавца. Ову почетну страницу коју ћете креирати користећи ХТМЛ шаблон, сличан оном креираном у одељку шаблона изнад.

Датотека виев.пи

из дјанго.схортцутс импорт рендер

деф индекс (захтев):
повратни приказ (захтев, 'селлерс_хоме.хтмл')

Приказ изнад узима захтев и враћа ХТМЛ шаблон продавца. Дакле, сваки пут када корисник посети (или затражи) http://127.0.0.1:8000/sellers/ видеће почетну страницу продаваца. Ово је након што креирате а урлс.пи датотеку у модулу продаваца.

Датотека Селлерс урлс.пи

са путање за увоз дјанго.урлса
из. увоз приказа

урлпаттернс = [
патх('', виевс.индек, наме='индек'),
]

И укључите пут до модула продаваца урлс.пи фајл у урлс.пи датотека која се налази у главном Дјанго директоријуму.

Датотека урлс.пи веб локације

из дјанго.цонтриб импорт админ
фром дјанго.урлс импорт инцлуде, патх

урлпаттернс = [
патх('селлерс/', инцлуде('селлерс.урлс')),
патх('админ/', админ.сите.урлс),
]

Сада када је приказ подешен, можете осигурати да Дјанго сервер и даље ради и да идете до њега http://127.0.0.1:8000/sellers/ у вашем претраживачу да бисте видели почетну страницу продаваца.

Почетна страница продаваца

Дјангоова МВТ архитектура вс. МВЦ архитектура

Дјанго-ова МВТ архитектура се прилично разликује од популарне МВЦ архитектуре.

Одељак шаблона МВТ архитектуре функционише на исти начин као и поглед у МВЦ архитектури, док поглед у МВТ архитектури приказује квалитете који су слични контролеру у МВЦ-у архитектура. Међутим, модели у обе архитектуре раде идентично.

Увод у МВЦ архитектуру: објашњени примери

Примените принципе дизајна Модел-Виев-Цонтроллер на сопствене програме за тренутне резултате. Ево како да почнете.

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • Програмирање
  • Програмирање
  • Питхон
О аутору
Кадеисха Кеан (Објављено 46 чланака)

Кадеисха Кеан је програмер комплетног софтвера и писац технике/технологије. Она има изразиту способност да поједностави неке од најсложенијих технолошких концепата; производећи материјал који може лако да разуме сваки почетник у технологији. Она је страствена у писању, развоју занимљивог софтвера и путовању светом (кроз документарне филмове).

Више од Кадеисхе Кеан

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили