Креирајте модел података у Фласку

Преглед садржаја
Наше апликације су много више од обичних страница, зато морамо створити начине за складиштење података у неком систему постојаности, ту се Базе података у игри је да би се установили начин на који ће нам база података помоћи да се модели створе.
Модел нам даје структуру према којој ће највећа логика наше апликације функционирати, овдје дајемо значење различитим ентитетима које морамо имати да бисмо могли извршавати своје радње.
Фласк имате могућност коришћења различитих врста Базе података само помоћу ОРМ СКЛАлцхеми.
ЗахтевиПотребна нам је функционална инсталација Фласк, и одговарајуће дозволе за инсталирање више компоненти пип. Ако имамо могућност да сарађујемо Виртуаленв много се више препоручује, међутим није неопходно. Ако желимо екстраполирати примјере водича, требат ће нам неки База података Шта МиСКЛ у случају да желимо да доведемо функционалност у много реалније окружење, будући да ћемо у вежбама са којима ћемо радити склите као меру поједностављења и бити практичнији.
Прва ствар коју ћемо урадити је инсталирање СКЛАлцхеми, овај корак је врло једноставан, само морамо извршити следећу команду у конзоли омогућеној за покретање пип:
 пип инсталл фласк-склалцхеми
На крају ћемо добити поруку о успеху ако је све прошло како треба:

Ставимо сада СКЛАлцхеми за рад, за ово ћемо створити малу апликацију у којој ћемо видети како можемо успоставити везу са базом података. У том случају биће позвана наша апликација фласко а унутар ње морамо имати следећу структуру.
1- Датотека под именом рун.пи то ће бити у корену апликације, ова датотека је та која врши основну иницијализацију читавог нашег окружења.
2- Име фасцикле фласко и унутар ове датотеке која се зове __инит__.пи, где ћемо покренути употребу боца и од СКЛАлцхеми директно.
Погледајмо на следећој слици како ова структура изгледа у пројекту:

Када сазнамо шта треба да имамо, имаћемо садржај за наше почетне датотеке. У датотеци рун.пи морамо имати следеће:
 фром фласко импорт аппапп.рун (дебуг = Труе)
Затим ћемо у нашу датотеку __инит__.пи поставити овај код:
 из фласк импорт Фласкиз фласк.ект.склалцхеми импорт СКЛАлцхемиапп = Фласк (__ наме __) апп.цонфиг ['СКЛАЛЦХЕМИ_ДАТАБАСЕ_УРИ'] = 'склите: //фласкодб.дб'дб = СКЛАлцхеми (апликација)
Овај последњи код је врло лако објаснити, само увозимо Фласк, затим увозимо СКЛАлцхеми, успостављамо нашу апликацију за рад са оквиром, а затим успостављамо везу са нашом База података у овом случају склите, где ће се звати фласкдб.дб и биће у истом директоријуму као и наша апликација. На крају додељујемо објекат СКЛАлцхеми променљивој тзв дб са којима ћемо касније радити.
Ако сада покренемо нашу апликацију, требало би да се покрене без грешака, једино нећемо имати резултат јер је апликација још увек празна.
Пошто сада имамо основну конфигурацију наше апликације, морамо поставити темеље за креирање нашег модела, за то ћемо морати да направимо фасциклу у нашој фасцикли која садржи датотеку __инит__.пи и ту ћемо генерисати потребан садржај.
Да видимо како се мења структура наших фасцикли:

Као што видимо унутар наше нове фасцикле производа, генерисали смо 3 датотеке, датотеку __инит__.пи која мора бити празна, датотека моделс.пи и други виевс.пи. Овом структуром ћемо изменити __инит__.пи из корена наше апликације, где је важно да се не мешате са __инит__.пи производа.
 из фласк импорт Фласкфром фласк.ект.склалцхеми импорт СКЛАлцхемиапп = Фласк (__ наме __) апп.цонфиг ['СКЛАЛЦХЕМИ_ДАТАБАСЕ_УРИ'] = 'склите: ///фласкодб.дб'дб = СКЛАлцхеми (апликација) из импорт фласко.продуп. (производ) дб.цреате_алл ()
Оно што смо урадили је да смо након стварања објекта дб увезали смо приказе из наше нове фасцикле и регистровали а нацрт, на крају кажемо објекту дб да мора створити све потребне табеле. Сада морамо изменити нашу датотеку моделс.пи унутар производа, а ми ћемо поставити следећи код:
 фром фласко импорт дбцласс Продуцт (дб.Модел): ид = дб.Цолумн (дб.Интегер, примари_кеи = Труе) наме = дб.Цолумн (дб.Стринг (255)) прице = дб.Цолумн (дб.Флоат) деф __инит__ (селф, наме, прице): селф.наме = наме селф.прице = прице деф __репр __ (селф): ретурн ''% селф.ид
Овде у основи оно што ми радимо је дефинисати класу који ће као атрибуте носити поља која ћемо захтевати од нашег производа, такође у оквиру њега постоји неколико метода за дефинисање и представљање нашег модела.
Када се горе наведено постигне, идемо у датотеку виевс.пи, у овом морамо створити код који нам омогућава интеракцију са нашим моделом за ово морамо написати следеће:
 из захтева за увоз фласк -а, јсонифи, Блуепринтиз фласко импорт апликације, дбфром фласко.продуцт.моделс импорт Продуцтпродуцт = Блуепринт ('продуцт', __наме __) @ апп.роуте ('/') @ апп.роуте ('/ старт') деф старт (): ретурн "Велцоме то Фласко" @ апп.роуте (' / продуцт /') деф продуцт (ид): продуцт = Продуцт.куери.гет_ор_404 (ид) ретурн 'Продуцт -% с, $% с'% ( продуцт .наме, продуцт.прице) @ апп.роуте ('/ продуцтс') деф продуцтс (): продуцтс = Продуцт.куери.алл () рес = {} за производ у производима: рес [продуцт.ид] = {' наме ': продуцт.наме,' прице ': стр (продуцт.прице)} ретурн јсонифи(рес)@апп.роуте (' / цреате-продуцт ', метходс = [' ПОСТ ',]) деф цреате_продуцт (): наме = рекуест.форм.гет ('наме') прице = рекуест.форм.гет ('прице') продуцт = Производ (назив, цена) дб.сессион.адд (производ) дб.сессион.цоммит () ретурн 'Производ је успешно креиран '
Прво што примећујемо је да у овој датотеци имамо много више садржаја него у остатку наше апликације и то је зато што се ту одвија читав живот нашег погледа, прва рута је почетак наше апликације и не укључују било какву већу мистерију.
Друга и трећа рута су за консултације, где можемо претраживати према ИД -у производа, а у случају да нема ништа за враћање странице 404, имамо и функцију да наведемо све производе доступне у нашој База података.
Последњи пут је онај који нам омогућава кроз методу ПОШТА стварање производа и његово касније складиштење у База података, за ово инстанцирамо наш Модел производа, где затим прослеђујемо наведени атрибут објекту дб и својим методама додати И урадити то додајемо База података.
Оно што остаје да тестирамо нашу апликацију је да додамо садржај који ће ићи у нашу базу података, ако се сећамо у датотеци виевс.пи креирамо приказ који прима методу путем података ПОШТА и он је задужен за уметање у њега. За додавање елемената користићемо модул Питхон позвао захтева то нам омогућава да шаљемо податке путем ПОСТ -а, ако их немамо на располагању, једноставно их морамо инсталирати са следећом командом:
 захтеви за инсталирање пипа
На секундарној конзоли ћемо покренути нашу апликацију фласко тако да је сервер укључен и да може да шаље захтеве са Питхон. У нашој интерактивној конзоли Питхон до којих приступамо исписивањем речи питхон, морамо учинити следеће:
 рекуестс.пост ('хттп://127.0.0.1:5000/ цреате-продуцт', дата = {'наме': 'продуцт1', 'прице': '50'})
Оно што смо урадили је слање захтева путем ПОШТА на нашу руту која додаје елементе у базу података, параметри се преносе у речник Питхон који је веома сличан објекту ЈСОН.
Ово би требало да нам да код 200, што значи да смо успешно успели у нашем захтеву, ово можемо видети на следећој слици:

Ако сада пређемо на нашу апликацију у приказу производа, видећемо како добијамо оно што смо управо унели преко конзоле:

Видимо да имамо списак у формату ЈСОН са нашим производом који смо управо додали, ако сада претражимо руту производ / 1 видећемо да ћемо и то добити:

Наравно, ово није далеко од тога да буде вредно производње, али нам помаже да научимо основе модела и постојаност података унутар Фласк, најзанимљивије је то што се нисмо распитивали СКЛ директно, ако променимо везу на склите за једног да МиСКЛ на пример, наша апликација ће наставити да ради као и обично.
Овим смо завршили овај водич, већ знамо како да креирате моделе ФласкОсим тога, научили смо да манипулишемо на основни, али врло користан начин ОРМ СКЛАлцхеми, где су ове компоненте веома важне при изградњи много већих апликација јер ће нам омогућити постизање сложенијих резултата са мање рада.

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave