django vs flask vs node
Фласк и Дјанго су оквири за веб развој заснован на Питхону. Овај водич детаљно упоређује Дјанго и Фласк. Фласк вс Ноде је такође кратко покривен:
Одувек је била свеприсутна дилема када је реч о питању одабира оквира за ваш следећи пројекат. Сваких неколико месеци видите нову технологију и оквир који превазилази слабости претходне коју сте користили.
Оквир је више налик тихој култури и скупу конвенција којих се морате придржавати да бисте били релевантнији и продуктивнији у овом свету који се стално мења. У поређењу са тим, веб развој се креће много брже од развоја радне површине.
=> Прочитајте серију обука о боцама
Шта ћете научити:
Дјанго вс Фласк
У овом упутству детаљно изводимо поређење између Дјанга и Фласка. Фласк и Дјанго су оквири за веб развој заснован на Питхону. Многи се крећу ка лаганим микрооквирима. Ови оквири су агилни, флексибилни, мали и помажу у развоју микросервиса и апликација без сервера.
С обзиром на популарност НодеЈС-а, такође смо пружили поређење чудеса између Фласк-а и Ноде-а у одељку Фласк вс. Ноде. Евалуација Дјанго-а и Фласка-а на следећим карактеристикама помоћи ће вам да одаберете једну преко друге.
Подразумевани Админ
Оба оквира пружају боотстраппед административну апликацију. У Дјанго је уграђен и долази са подразумеваном инсталацијом. Међутим, у случају Фласк-а, морате инсталирати Фласк-Аппбуилдер да бисте имали административни интерфејс.
У међувремену, не заборавите да направите суперусер у Дјанго-у и админ у случају Фласк-а како бисте се могли пријавити у администраторску позадину помоћу прегледача.
Базе података и ОРМС
Дјанго се испоручује са подразумевано уграђеним ОРМ-ом који отворено подржава интеракцију са РДБМС-има као што су Орацле, МиСКЛ, ПостгреСКЛ, СКЛите итд. Овај ОРМ такође подржава генерисање и управљање миграцијама. Релативно је угодније креирати моделе база података са уграђеним валидацијама.
Фласк такође не намеће ниједан одређени метод и доступан је за употребу са различитим проширењима која подржавају сличне функције као што је наведено у случају Дјанго. Дали смо примере Фласк-СКЛАлцхеми, Фласк-Миграте, Фласк-МонгоЕнгине, у једном од упутстава из серије.
Погледи и руте
Оба оквира имају механизме за декларисање погледа заснованих на методама и класама. У случају Дјанго, руте и прикази помињу се у одвојеним датотекама. Такође, увек морамо експлицитно проследити објекат захтева.
С друге стране, у тиквици можемо користити декоратер да поменемо руте за одговарајуће руковаоце. Објекат захтјева у Фласку је глобални и доступан је само без икаквог изричитог проласка. У једном од наших водича детаљно смо описали концепте коришћења погледа и рута.
Обрасци и предлошци
Дјанго обрасци су уграђени у оквир и не захтевају инсталацију. Обрасци су прилично битни за апликације, а у Дјангу се обрасци могу проследити ознакама шаблона и доступни су за приказивање у предлошцима. Међутим, у случају Фласк, морамо да користимо Фласк-ВТФ.
Такође смо користили Фласк-Аппбуилдер за креирање образаца. Штавише, ВТФ-Алембиц се може користити за генерисање ХТМЛ образаца на основу модела базе података.
Оба оквира подржавају Јиња2 предлошке, а оба подржавају послуживање статичких датотека са уграђеним функцијама за генерисање УРЛ-ова ресурса и прилично је чест образац у свим оквирима данас.
Иако постоје различити начини за прослеђивање променљивих и приказивање предложака у њиховим одређеним методама приказа, оба оквира имају исту синтаксу приступа променљивим у предлошцима.
Флексибилност
Дјанго је, због своје величине и сложености, мање флексибилан од Фласк-а. Чутура се лако може продужити уз помоћ великог броја проширења која подржава. Због тога је потребно више времена и труда да се постави Фласк, јер морамо да проценимо више проширења.
Слобода дата програмерима на неки начин резултира споријим развојем и испоруком. С друге стране, Дјанго следи низ већ успостављених конвенција и следи архетипове који захтевају мање одступање од пројектних циљева.
Крива учења
Готово вам је потребно исто толико времена да научите и Дјанго и Фласк. Фласк има мањи АПИ; стога би људи могли да је заврше брже што се тиче основног оквира. Постаје подједнако изазовно када је у питању коришћење његових проширења. Ускоро би могло постати гломазно.
Међутим, само зато што није све упаковано у један пакет, лакше је вежбати раздвајање проблема у случају оквира Фласк.
Препоручујемо да научите обрасце, а не синтаксу која се следи. И Дјанго и Фласк имају изврсну документацију. Можете га лако пратити док развијате функцију.
Величина и трајање пројекта
Када радите на већем пројекту са већим тимовима, боље је искористити зрелост Дјанга и широку подршку сарадника коју има. Ако је ваш пројекат мањи и захтева мањи број програмера, боље је ићи са Фласком.
Штавише, ако ће ваш пројекат трајати дуго, онда је Дјанго прави избор; у супротном можете да изаберете Фласк.
Тип апликације
Раније се Дјанго сматрао правим избором када су постојали захтеви за пуноправне веб апликације на нивоу предузећа. Али, данас је Фласк подједнако зрео и може служити добро под истим условима.
Међутим, програмери теже да Фласк више одаберу за развој малих или статичних веб локација или за брзу испоруку РЕСТфул АПИ веб услуга.
Запошљавање програмера
Поседовање квалификованих ресурса у складу са оквиром који користите се исплати. Можете очекивати бржи развој, брже тестирање, бржу испоруку и брже исправке проблема.
У случају Фласка прилично је лако пронаћи нове програмере. Међутим, изазовно је пронаћи квалификоване ресурсе у Дјангу. Нема много спремних да их ангажују програмери Дјанго. Штавише, Дјанго оквир је прилично стар, и зато је већина нових ангажмана скупа за запошљавање у поређењу са онима који су вешти у Фласк оквиру.
Нови дипломирани техничари такође преузимају лагане оквире као што је Фласк, јер су индустријски трендови ка стварању апликација са невезаним микросервисима или технологијом која подржава стварање имплементације без сервера. Јавасцрипт се широко користи заједно са оквирима који су лакши за употребу и популарнији.
Отвореног кода
И Фласк и Дјанго су пројекти отвореног кода. Дјанго можете пронаћи на хттпс://гитхуб.цом/дјанго/дјанго и Фласк на хттпс://гитхуб.цом/паллетс/фласк. Гледајући ове пројекте, број сарадника за Дјанго је прилично шири од оних који доприносе Фласку.
Стога можемо очекивати већу и бржу подршку ако имамо неких проблема и упита који требају решавање. Супротно типичним претпоставкама, број корисника пројекта Фласк већи је од броја Дјанго.
Једна забрињавајућа чињеница о Фласку је да можда неће постојати стабилно проширење за одређени задатак. Због тога посао филтрирања најбољег остаје на кориснику проширења.
На пример, користили смо Фласк-Твиттер-оембеддер за рад са Твиттер-овим АПИ-јем у прошлом упутству, али ово проширење је имало неких проблема због којих смо морали да пређемо са Фласк-Цацхе на Фласк-Цацхинг.
Чак смо морали да укључимо прилагођену изјаву о инсталацији да бисмо инсталирали Фласк-твиттер-оембеддер из нашег ажурираног Гитхуб репо-а, уместо да га помињемо у нашој датотеци рекурементс.ткт пројекта.
Често одржавање типичан је изазов са којим ћете се суочити са пројектом отвореног кода. Подршка и управљање пројектом отвореног кода обично су везани за плаћене услуге. Можда ћете морати да чекате дуго времена да бисте решили неколико проблема од сарадника у пројекту.
Перформансе
Оквир тиквице је лакши од Дјанго-а и има бољи учинак са занемарљивим разликама, посебно док се разматрају И / О операције.
Погледајте доле дата поређења. Са порастом захтева, учинак Фласка остаје готово исти. Међутим, Дјанго-у треба више времена да генерише предлошке након преузимања података помоћу ОРМ-а.
Питхон Фласк вс Дјанго: Табеларно поређење
# | Карактеристике | Дјанго | Чутура |
---|---|---|---|
7 | Варијабилна интерполација у предлошцима | У темплатес / демо.хтмл {{темпвар}} | У темплатес / демо.хтмл {{темпвар}} |
један | Подразумевани Админ | Упућени Бацкенд за Админ | Инсталирајте Фласк-Аппбуилдер |
два | Омогући подразумеваног администратора | У сеттингс.пи проверите да ли сте коментарисали апликацију коју је инсталирао администратор. ... # Дефиниција апликације ИНСТАЛЛЕД_АППС = ( 'веб сајт', 'дјанго.цонтриб.админ', # други код ) ... | Увезите АппБуилдер и СКЛА из фласк_аппбуилдер, прво иницијализујте ДБ, а затим Аппбуилдер из тиквице увоз Боца фром фласк_аппбуилдер импорт АппБуилдер, СКЛА апп = чутура (__ име__) дб = СКЛА (апликација) аппбуилдер = АппБуилдер (апликација, дб.сессион) |
3 | Направите административног корисника | питхон манаге.пи креира корисника | фласк фаб цреате-админ |
4 | Базе података и ОРМС | Уграђени ОРМ за РДБМС Користите Дјанго-нонрел за НоСКЛ позадинске датотеке | Инсталирајте Фласк-СКЛАлцхеми НоСКЛ специфично проширење тиквице као што је Фласк-МонгоЕнгине |
5 | Погледи и руте | УРЛЦонф у урлс.пи из путање увоза дјанго.урлс из .увозних погледа урлпаттернс = ( патх (’/ патх’, виевс.хандлер_метход), # других УРЛ-ова и руковалаца ) | Користите украсник @ апп.роуте („/ патх“) у Виевс да бисте мапирали руту са функцијом. @ апп.роуте („/ путања“) деф хандлер_метход (): # други код са даљом логиком |
6 | Рендер Темплатес | У погледима из дјанго.схортцутс импорт рендер деф екампле_виев (захтев): темпвар = ”вредност_за_предлогу” ретурн рендер ( захтев, „Демо.хтмл“, {'Темпвар': темпвар} ) | У погледима од. апликација за увоз из захтева за увоз чутуре из увоза тиквице рендер_темплате @ апп.роуте („/ путања“) деф демо (): темпвар = ”вредност_за_предлогу” ретурн рендер_темплате ( „Демо.хтмл“, темп_вар = темп_вар ) |
8 | Флексибилност | Мање флексибилан | Флексибилније |
9 | Одлуке о дизајну | Мање одлука о дизајну са програмерима. | Више слободе програмерима. |
10 | Пројектно одступање | Мање одступања од циљева пројекта. | Више одступања због слободе дата програмерима. |
Једанаест | Величина базе података | Већа кодна база | Мањи кодни код |
12 | Број АПИ-ја | Више АПИ-ја | Мање АПИ-ја |
13 | Тип апликације | Потпуне веб апликације | Мање апликације / микросервиси |
14 | РЕСТфул Апплицатионс | Дјанго РЕСТ оквир за РЕСТфул апликације. | Користите следеће екстензије за РЕСТфул апликације. Фласк-РЕСТфул Чутура-РЕСТКС Пријавите се |
петнаест | Перформансе | Споре перформансе када је број захтева велик. | Доследно извођење током целог. |
16 | Доприноси отвореног кода | Већи број вилица, сатова и комитовања. | Мањи број виљушака, сатова и комитовања. |
17 | Програмери | Захтевају искусни програмери и нису лако доступни за запошљавање. | Већина програмера је мање искусна и има их у одговарајућем броју. |
Чутура против чвора
Што се тиче стега веб развоја, испоставило се да развој за веб захтева спајање различитих технологија. Морамо да разградимо веб апликацију на интерфејс и позадину. Предњи део апликације најбоље је развијен у технологијама које се покрећу у прегледачу, као што су ЈаваСцрипт, ХТМЛ и ЦСС.
Генерално, позадина је развијена на језицима који су погодни за серверску страну и могу да комуницирају са основним оперативним системом, повезаним базама података или мрежом када је то потребно.
Међутим, оквир заснован на ЈаваСцрипт-у, назван НодеЈС, променио је претходно дати поглед и омогућио програмерима да имају доследност и уједначеност у развоју предњег и задњег дела веб апликација. Програмери би могли да развијају позадину користећи ЈаваСцрипт.
У овом одељку Фласк вс Ноде упоређујемо Фласк, који је оквир заснован на програмском језику Питхон, са Ноде-ом, који се заснива на Цхроме-овом времену извршавања по различитим критеријумима као што су архитектура, брзина, подршка заједнице итд.
# | Критеријуми | Чутура | Чвор |
---|---|---|---|
7 | Отклањање грешака | Лакше отклањање грешака помоћу Питхон програма за отклањање погрешака без зависности. | Захтева више напора. Једноставније са развојним ИДЕ-ом са библиотеком Блуебирд / Промисе. |
један | Време извођења језика | Питхон | Цхроме-ов В8 ЈаваСцрипт Енгине |
два | Архитектура | Улаз / излаз који не блокира захтева употребу веб сервера који не блокирају, као што је гуницорн. Категорија микрораме (задњи крај). | Инхерентно пружа не-блокирајуће У / И. Фуллстацк категорија |
3 | Менаџер пакета | пип | надморске висине |
4 | Брзина | Спорије због засебног тумача за Питхон. | Бржи због компајлера Јуст-Ин-Тиме. |
5 | Отвореног кода | да | да |
6 | Подршка заједнице | На Гитхуб-у 2,3 К сатова 51,4 К звезда Вилице 13,7 К. | На Гитхуб-у 2.9 К сатова 71,9 К звезда Вилице 17,6 К. |
8 | Одржавање | Минимално одржавање | Веће одржавање |
9 | Апликације у реалном времену | Суштински није погодан. Међутим, може радити заједно са соцкет.ио за случајеве употребе у реалном времену. Користите продужетак Фласк-соцкетио. | Погодно због архитектуре засноване на догађајима и модула за стримовање. У суштини асинхрони. |
10 | Библиотеке | Зрелије и стабилније. | Мање зрели и стабилни, али у оквиру активног развоја и издања исправки. |
Једанаест | Квалитет кода | Ексклузивно је створен за задњи крај. | Понекад је угрожен због преласка нових програмера на позадину. |
12 | Састав тима програмера | Тимови се обично састоје од бацк енд програмера и фронт енд програмера. Забринутост је одвојена. | Програмери могу да размењују улоге и раде и за предњи и за задњи крај. |
13 | Интеграција са постојећим системом и апликацијама | Једноставнија интеграција са осталим постојећим позадинским апликацијама користећи Питхон-ов екосистем за машинско учење и апликације за велике податке. | Прилично ново и захтева стварање прилагођених или нових библиотека за интеграцију са другим постојећим апликацијама. |
Често постављана питања
П # 1) Шта прво треба да научим, Дјанго или Фласк?
Одговор: Боље је прво ићи са Фласком. Када стекнете мало искуства у веб развоју, можете да се позабавите Дјангом. Дјанго претпоставља да већ знате како функционишу веб апликације и сам брине о већини функционалности.
П # 2) Да ли је Фласк или Дјанго бољи?
Одговор: И Фласк и Дјанго су изврсни и одговарају својој сврси. Дјанго се користи за стварање истакнутијих апликација на нивоу предузећа. Чутура се користи за стварање статичких и мањих апликација. Чутура је такође погодна за израду прототипа. Међутим, употребом екстензија Фласк, можемо створити и велике апликације.
П # 3) Које компаније користе Фласк?
које су фазе сдлц
Одговор: Неке компаније које користе Фласк су Реддит, Маилгун, Нетфлик, Аирбнб итд.
П # 4) Које странице користе Дјанго?
Одговор: Неке од веб локација које користе Дјанго су Инстаграм, Спотифи, ИоуТубе, Дропбок, Битбуцкет, Евентбрите итд.
Закључак
Не бисмо се требали дуго фиксирати једним оквиром. Требали бисмо бити спремни да научимо нове сетове технологије и усвојимо трендове који се тамо налазе. Неки од нас желе да буду релативно неуобичајени, приступи са батеријом са крутим циклусима ослобађања, одржавањем чвршће компатибилности уназад, итд.
Ако мислите да више припадате овој групи, онда морате одабрати Дјанго. Међутим, невероватно је ходати заједно са новим карактеристикама и флексибилношћу оквира Фласк. Када желите да одржавате доследност између предњег краја и позадине, можете одабрати оквир са пуним стеком као што је НодеЈС.
Идеја са оквиром је више избор који зависи од контекста и проблема које покушавамо да решимо. Избор оквира је увек тежак. Надамо се да смо у овом упутству представили основне тачке прегледа и да ће вам помоћи у финализацији једног оквира. Међутим, препоручујемо да научите оба оквира.
Лакше је започети са Фласком, а затим прећи на Дјанго након стицања одређеног искуства у веб развоју. Ако из неког разлога ваши развојни напори захтевају употребу ЈаваСцрипт-а, онда можете наставити са НодеЈС-ом.
=> Овде погледајте СВЕ туторијале за тиквице
Препоручено читање
- Водич за Питхон Дјанго - Први кораци са Дјанго-ом
- Узорци дизајна тиквица и најбоље праксе за веб апликације
- Предложак тиквице, образац, поглед и преусмеравање са примерима
- Топ 31 популарна питања за интервју са Питхон Фласк-ом са одговорима
- Како поставити Ноде.јс оквир за тестирање: Водич за Ноде.јс
- Водич за ТестНГ: Увод у ТестНГ Фрамеворк
- Оквир вођен кључним речима у селену са примерима
- Водич за Робот Фрамеворк - карактеристике и инсталација софтвера