Дјанго - Динамички модели

Преглед садржаја
Ин Дјанго класе су објекти Питхон, Као и сваки други објекат, можемо постићи много занимљивих ефеката у време извршавања програма, захваљујући чињеници да имамо све Питхон функције и методе доступно у Дјанго -у, можемо изградити класе које могу генерисати динамичке класе.
Креирање динамичке класе може нам пружити неке предности, попут стварања модела из класе, стварајући тако нове функционалности.
Како класе функционишу у оквиру?
Да бисмо дошли до тачке генерисања динамичких модела, прво морамо бити сигурни да разумемо како класе функционишу у Питхону.
Знамо да се часови у Питхон су објекти који се могу креирати током извођења помоћу унутрашњег конструктора тип () и добијање детаља о томе како их треба дефинисати.
Модели у Дјангу
Пошто знамо како часови функционишу у Питхону, морамо нагласити да модели у Дјангу то су стандардне Питхон класе, само што су декларисане на тај начин Дјанго можете их користити и да су стандардне класе омогућава нам генерисање модела у току извођења.
Прва имплементација
Погледајмо следећу слику са малим кодом:

Овде видимо како се Дјанго фрамеворк Увозимо модуле модуле, затим креирамо метод за креирање модела са тип конструктора () које смо споменули у претходној тачки водича.
Међутим, овај поједностављени приступ који смо применили очигледно неће успети, проблем је у томе што Дјанго очекује да речник укључује модул са својим кодом.
Хајде сада да видимо код којим решавамо овај проблем:
 деф цреате_модел (наме, модуле_патх): тип повратка (наме, (моделс.Модел,), {'__модуле__': модуле_патх}) 

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

У овом коду смо јасно променили неке аспекте нашег почетног кода, почињемо дефинисањем да је путања модула: Дјанго.дб.моделс, одавде ћемо добити почетне дефиниције, када се то догоди, креирамо речник коме га додељујемо __модуле__ вредност пута који смо дефинисали.
Затим поново обрађујемо класу Мета, чиме штедимо могуће проблеме о којима смо разговарали на почетку ове тачке, коначно можемо назвати наш метода типе (), прослеђивање потребних података, а не грешка.
Са овим новим знањем које смо генерисали, већ имамо чврсту основу са којом можемо да комуницирамо са кодом Дјанго на сигурнији начин, што нас ставља у повољан положај за развој наших апликација и генерирање модела динамички у времену извршавања нашег програма.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave