Дјанго

Како се користе Дјанго сериализатори

Како се користе Дјанго сериализатори
Серијализатор се користи у Дјанго-у за претварање инстанци модела или скупова упита у подржане типове података који се лако могу приказати у ЈСОН, КСМЛ или друге формате. Десеријализацију могу извршити и сериализатори да би вратили оригиналне податке из сериализованих података. Ова функција је доступна у Дјанго РЕСТ Фрамеворк-у. Дакле, корисници морају да инсталирају овај оквир да би користили сериализаторе. Било која веб страница веб странице може садржати ХТМЛ, ЦСС и податке из табела базе података. Али АПИ не разуме ове врсте садржаја и може да разуме само сирове податке, односно ЈСОН податке. Како се сериализатори могу користити за претварање инстанце модела у ЈСОН формат, приказано је у овом упутству.

Предуслови:

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

  1. Инсталирајте Дјанго верзију 3+ на Убунту 20+ (пожељно)
  2. Направите Дјанго пројекат
  3. Покрените Дјанго сервер да бисте проверили да ли сервер исправно ради или не.

Подесите апликацију Дјанго за сериализаторе:

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

$ питхон3 управља.пи стартапп сериалапп

Покрените следећу наредбу да бисте креирали корисника за приступ Дјанго бази података. Ако сте већ креирали корисника, тада не морате покретати команду.

$ питхон3 управља.пи ствара корисничког корисника

Покрените следећу команду да бисте инсталирали Дјанго РЕСТ Фрамеворк.

$ пип3 инсталирајте дјангорестфрамеворк

Додајте рест_фрамеворк и име апликације у ИНСТАЛЛЕД_АПП део подешавања.пи датотека.

ИНСТАЛЛЕД_АППС = [
… .
'рест_фрамеворк',
'сериалапп'
]

Направите модел за табелу базе података:

Отвори модели.пи датотека из сериалапп директоријум и додајте следећу скрипту да бисте дефинисали структуру купци столови. Купац класа је дефинисана за креирање табеле са именом купци са име, адреса, е-адреса, контакт_бр, и створена поља. Ево, име, е-маил, и цонтацт_но поља ће чувати податке о знаковима, адреса поље ће чувати текстуалне податке и створена поље ће чувати податке датума.

модели.пи

# Увезите модул модела
од дјанго.дб модели увоза
# Дефинишите класу модела за табелу купаца
класа Купац (модели.Модел):
име = модели.ЦхарФиелд (мак_ленгтх = 100)
адреса = модели.Текстуално поље()
емаил = модели.ЦхарФиелд (мак_ленгтх = 50)
цонтацт_но = модели.ЦхарФиелд (мак_ленгтх = 20)
створено = модели.ДатеТимеФиелд (ауто_нов_адд = Труе)

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

$ питхон3 управља.пи макемигратионс сериалапп

Покренути мигрирати наредба за извршавање СКЛ наредби и стварање свих табела у бази података дефинисаних у модели.пи датотека.

$ питхон3 управља.пи мигрирати

Измените садржај админ.пи датотека следећег садржаја. Ево, муштерија класа модела региструје се коришћењем регистар () метода за приказ купци табеле на контролној табли администрације Дјанго.

админ.пи

# Увоз административног модула
од дјанго.допринос увоз админ
# Увезите модел купца
од .модели увоз купца
# Региструјте модел купца
админ.сајт.региструјте се (купац)

урл адресе.пи

од дјанго.путања за увоз УРЛ адреса
од дјанго.допринос увоз админ
урлпаттернс = [
# Дефинишите путању за администратора
патх ('админ /', админ.сајт.урлс),
]

Додајте записе у табелу:

Отворите страницу Дјанго Администратион и додајте неколико записа у купци табела која се прегледачу приказује у ЈСОН формату. Овде су убачена три записа.

Измените погледе.пи:

Отвори погледа.пи датотека из сериалапп и замените садржај следећом скриптом. ЦустомерЛист класа је дефинисана за сериализацију свих записа купаца и враћање података у прегледач у ЈСОН формату. ЦустомерДетаил класа је дефинисана за сериализацију одређеног корисничког записа на основу вредности ИД-а и враћање података прегледача у ЈСОН формату. ЦустомерСериализер је датотека сериализатора која је креирана у следећем делу овог водича.

погледа.пи

# Увезите генеричке производе из Дјанго РЕСТ Фрамеворк-а
фром рест_фрамеворк импорт генерички
# Увоз модела купца
од .модели увоз купца
# Увезите ЦустомерСериализер из сериализатора
од .сериализатори увезу ЦустомерСериализер
# Дефинишите класу за претварање свих записа табеле купаца у ЈСОН
класа ЦустомерЛист (генерички.ЛистЦреатеАПИВиев):
куерисет = купац.предмета.све()
сериализер_цласс = ЦустомерСериализер
# Дефинишите класу за претварање одређеног записа табеле купаца у ЈСОН
класа ЦустомерДетаил (генерички.РетриевеУпдатеДестроиАПИВиев):
куерисет = купац.предмета.све()
сериализер_цласс = ЦустомерСериализер

Направи серилизатор:

Креирај сериализатори.пи датотека на истом месту погледа.пи датотека са следећом скриптом. МоделСериализер класа се овде користи за стварање ЦустомерСериализер класа која враћа класу сериализатора са пољима модела купца. Поља корисничког модела која ће се претворити у ЈСОН формат наведена су у Мета класа.

сериализатори.пи

# Увезите модул сериализатора из Дјанго РЕСТ Фрамеворк-а
фром рест_фрамеворк импорт сериализерс
# Увоз модела купца
од .модели увоз купца
# Дефинишите прилагођену класу сериализатора за претварање поља модела купца у ЈСОН
класа ЦустомерСериализер (сериализатори.МоделСериализер):
класа Мета:
модел = купац
поља = ('ид', 'наме', 'аддресс', 'емаил', 'цонтацт_но')

Измените УРЛ адресе.пи датотека:

Измените садржај урл адресе.пи датотека са следећом скриптом. У сценарију, 'купци /'путања је дефинисана за приказ свих записа датотеке купци табела у ЈСОН формату и 'купци //'путања је дефинисана за приказ одређених података купци табела у ЈСОН формату на основу вредности ИД.

урл адресе.пи

# Увоз административног модула
од дјанго.допринос увоз админ
# Увезите путању и укључите модул
од дјанго.путања за увоз УРЛ адреса
# Увезите погледе
из приказа сериалапп импорт
# Увезите формат_суффик_паттернс из Дјанго РЕСТ Фрамеворк-а
фром рест_фрамеворк.урлпаттернс импорт формат_суффик_паттернс
урлпаттернс = [
# Дефинишите путању за администратора
патх ('админ /', админ.сајт.урлс),
# Дефинишите путању до свих података о купцима у ЈСОН формату
патх ('купци /', прикази.ЦустомерЛист.ас_виев ()),
# Дефинишите путању за добијање одређених података о купцу на основу ИД-а у ЈСОН формату
патх ('купци //', прикази.ЦустомерДетаил.ас_виев ()),
]
урлпаттернс = формат_суффик_паттернс (урлпаттернс)

Сви записи табеле купаца биће приказани у ЈСОН формату ако се изврши следећа УРЛ адреса.

хттп: // лоцалхост: 8000 / купци

Запис другог купца биће приказан у ЈСОН формату ако се изврши следећа УРЛ адреса.

хттп: // лоцалхост: 8000 / цустомерс / 2

Закључак:

Употреба сериализатора у апликацији Дјанго за претварање инстанце модела у ЈСОН формат приказана је у овом упутству помоћу једноставне скрипте. Корисници Дјанга ће разумети сврху коришћења сериализатора и применити их у својој апликацији, ако је потребно, након читања овог водича.

СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...
0 А.Д. Приручник
Од многих стратешких игара тамо, 0 А.Д. успева да се истакне као свеобухватан наслов и врло дубока, тактичка игра упркос томе што је отворен извор. Ра...