django vs flask vs node
Flask a Django sú rámce pre vývoj webových aplikácií založené na Pythone. Tento tutoriál podrobne porovnáva Django vs Flask. Flask vs Node je tiež stručne pokrytý:
Pokiaľ ide o otázku výberu rámca pre váš ďalší projekt, vždy to bola všadeprítomná dilema. Každých pár mesiacov uvidíte novú technológiu a rámec, ktorý prekoná slabiny predchádzajúcej, ktorú ste použili.
Rámec pripomína skôr tichú kultúru a súbor konvencií, ktoré musíte dodržiavať, aby ste v tomto neustále sa meniacom svete technológií stali relevantnejšími a produktívnejšími. Porovnateľne sa vývoj webu pohybuje oveľa rýchlejšie ako vývoj desktopu.
=> Prečítajte si sériu školení o banke
Čo sa dozviete:
Django vs banka
V tomto tutoriále podrobne načrtneme porovnanie medzi Django a Flask. Flask a Django sú rámce pre vývoj webových aplikácií založené na Pythone. Mnohé smerujú k ľahkým mikrorámcom. Tieto rámce sú agilné, flexibilné, malé a pomáhajú vyvíjať mikroslužby a aplikácie bez servera.
Vzhľadom na popularitu NodeJS sme v sekcii Flask vs. Node tiež poskytli zázračné porovnanie medzi bankami a uzlami. Hodnotenie Djanga a banky na základe nasledujúcich funkcií vám pomôže pri výbere jednej nad druhou.
Predvolený správca
Obidva rámce poskytujú bootovateľnú administrátorskú aplikáciu. V Django je zabudovaný a dodáva sa s predvolenou inštaláciou. Avšak v prípade Flask je potrebné nainštalovať Flask-Appbuilder, aby ste mali administrátorské rozhranie.
Medzitým nezabudnite vytvoriť superužívateľa v Django a admin v prípade Flask, aby ste sa mohli prihlásiť do administrátorského backendu pomocou prehliadača.
Databázy a ORMS
Django sa dodáva so štandardne zabudovaným ORM, ktorý jednoznačne podporuje interakciu s RDBMS ako Oracle, MySQL, PostgreSQL, SQLite atď. Tento ORM podporuje aj generovanie a správu migrácií. Je relatívne pohodlnejšie vytvárať databázové modely so zabudovanou validáciou.
Banka tiež nekladie žiadnu konkrétnu metódu a je k dispozícii na použitie s rôznymi príponami, ktoré podporujú podobné funkcie, ako sú načrtnuté v prípade Djanga. V jednom z tutoriálov zo série sme uviedli príklady Flask-SQLAlchemy, Flask-Migrate, Flask-MongoEngine.
Pohľady a trasy
Oba rámce majú mechanizmy na deklaráciu pohľadov založených na metódach a triedach. V prípade Django sú trasy a zobrazenia uvedené v samostatných súboroch. Vždy tiež musíme explicitne odovzdať objekt žiadosti.
Na druhej strane v banke môžeme pomocou dekoratéra spomenúť trasy pre príslušné obslužné programy. Objekt požiadavky v banke je globálny a je k dispozícii iba bez výslovného obiehania. V jednom z našich tutoriálov sme podrobne opísali koncepty používania pohľadov a trás.
Formuláre a šablóny
Formáty Django sú zabudované do rámca a nevyžadujú žiadnu inštaláciu. Formuláre sú pre aplikácie úplne nevyhnutné a v Django je možné ich odosielať do značiek šablón a je možné ich vykresliť v šablónach. V prípade Flask však musíme použiť Flask-WTF.
Pri vytváraní formulárov sme tiež využili program Flask-Appbuilder. Okrem toho možno program WTF-Alembic použiť na generovanie formulárov HTML na základe databázových modelov.
Obidva rámce podporujú šablónu Jinja2 a obidve podporujú zobrazovanie statických súborov so zabudovanými funkciami na generovanie adries URL zdrojov, čo je v dnešnej dobe vo všetkých rámcoch celkom bežný vzor.
Aj keď existujú rôzne spôsoby odovzdávania premenných a vykresľovania šablón v ich konkrétnych metódach zobrazenia, obidve rámce majú rovnakú syntax prístupu k premenným v šablónach.
Flexibilita
Django je pre svoju veľkosť a zložitosť menej flexibilné ako Flask. Banku je možné ľahko predĺžiť pomocou veľkého množstva rozšírení, ktoré podporuje. Preto si vyžaduje viac času a úsilia na nastavenie banky, pretože musíme vyhodnotiť viac rozšírení.
Sloboda, ktorá sa určitým spôsobom poskytuje vývojárom, vedie k pomalšiemu vývoju a doručovaniu. Na druhej strane Django dodržiava súbor už zavedených konvencií a dodržiava archetypy, ktoré si vyžadujú menšiu odchýlku od zámerov a zámerov projektu.
Krivka učenia
Naučiť sa Django aj Flask si vyžaduje takmer rovnaké množstvo času. Banka má menšie API; ľudia by preto mohli byť schopní dokončiť ho rýchlejšie, čo sa týka základného rámca. Rovnako náročné to bude aj pri používaní jeho rozšírení. Môže to byť čoskoro ťažkopádne.
Avšak len preto, že všetko nie je zabalené v jednom balíku, je v prípade rámca Flask jednoduchšie praktizovať oddelenie obáv.
Odporúčame vám naučiť sa vzory, a nie syntax, ktorá sa dodržiava. Django aj Flask majú vynikajúcu dokumentáciu. Môžete ho ľahko sledovať pri vývoji funkcie.
Veľkosť a trvanie projektu
Keď pracujete na väčšom projekte s väčšími tímami, je lepšie využiť výhodu vyspelosti Djanga a rozsiahlej podpory prispievateľov, ktorú má. Ak je váš projekt menší a vyžaduje menší počet vývojárov, je lepšie ísť s programom Flask.
Navyše, ak bude váš projekt trvať dlho, potom je Django tou správnou voľbou; inak môžete zvoliť Banku.
Typ aplikácie
Predtým bol Django považovaný za správnu voľbu, keď existovali požiadavky na plnohodnotné webové aplikácie v podnikovom meradle. Ale dnes je banka rovnako vyspelá a môže dobre slúžiť za rovnakých podmienok.
Vývojári však majú tendenciu voliť Flask viac na vývoj malých alebo statických webov alebo pri rýchlej implementácii webových služieb RESTful API.
Nábor vývojárov
Mať kvalifikované zdroje v dohovore o rámci, ktorý používate, sa oplatí. Môžete očakávať rýchlejší vývoj, rýchlejšie testovanie, rýchlejšie doručenie a rýchlejšie opravy problémov.
Nájsť nových vývojárov v prípade Flask je celkom ľahké. Nájsť v Djangu kvalifikované zdroje je však náročné. Nie je veľa pripravených na prijatie vývojármi Django. Rámec Django je navyše dosť starý, a preto je väčšina nových prijímateľov drahá v porovnaní s tými, ktorí majú skúsenosti s rámcom Flask.
Noví technickí absolventi taktiež preberajú ľahké rámce, ako je napríklad Flask, pretože priemyselné trendy smerujú k vytváraniu aplikácií s oddelenými mikroslužbami alebo k technológii, ktorá podporuje vytváranie implementácie bez servera. Javascript je široko používaný spolu s rámcami, ktoré sa ľahšie používajú a sú populárnejšie.
Open Source
Flask aj Django sú projekty typu open-source. Django nájdete na https://github.com/django/django a Flask na https://github.com/pallets/flask. Pri pohľade na tieto projekty je počet prispievateľov do Djanga omnoho rozsiahlejší ako v prípade prispievateľov do banky.
Preto môžeme očakávať väčšiu a rýchlejšiu podporu, ak máme nejaké problémy a dotazy, ktoré si vyžadujú riešenie. Na rozdiel od typických predpokladov je počet používateľov projektu Flask vyšší ako počet používateľov Django.
Jedným z faktov týkajúcich sa Flask je, že nemusí existovať stabilné rozšírenie pre konkrétnu úlohu. Filtrovanie toho najlepšieho preto zostáva na používateľovi rozšírenia.
Napríklad, v minulom tutoriáli sme na prácu s API Twitteru použili Flask-Twitter-oembedder, ale toto rozšírenie malo nejaké problémy, kvôli ktorým sme museli prejsť z Flask-Cache na Flask-Caching.
Dokonca sme museli zahrnúť vlastné inštalačné vyhlásenie, aby sme nainštalovali Flask-twitter-oembedder z nášho aktualizovaného repozitára Github, než aby sme ho spomínali v našom súbore projektu requrements.txt.
Častá údržba je typickou výzvou, ktorej budete čeliť v rámci open-source projektu. Podpora a riadenie projektu typu open-source sú zvyčajne spojené s platenými službami. Možno budete musieť dlho čakať, kým sa od prispievateľov do projektu dostane k pár problémom.
Výkon
Flask framework je ľahší ako Django a pri zanedbateľných rozdieloch funguje lepšie, najmä pri zvažovaní I / O operácií.
Zoznámte sa s nižšie uvedenými porovnaniami. S nárastom požiadaviek zostáva výkonnosť banky takmer rovnaká. Django však trvá načítanie šablón po načítaní údajov pomocou ORM dlhšie.
Python Flask Vs Django: Tabuľkové porovnanie
# | Vlastnosti | Django | Banka |
---|---|---|---|
7 | Variabilná interpolácia v šablónach | V šablónach / demo.html {{tempvar}} | V šablónach / demo.html {{tempvar}} |
1 | Predvolený správca | Vstavaný administrátorský backend | Nainštalujte si aplikáciu Flask-Appbuilder |
dva | Povoliť predvoleného správcu | V súbore settings.py nezabudnite odznačiť aplikáciu nainštalovanú správcom. ... # Definícia aplikácie INSTALLED_APPS = ( „web“, 'django.contrib.admin', # iný kód ) ... | Importujte AppBuilder a SQLA z flask_appbuilder, najskôr inicializujte databázu a potom Appbuilder z banky na dovoz baniek z flask_appbuilder import AppBuilder, SQLA aplikácia = banka (__ meno__) db = SQLA (aplikácia) appbuilder = AppBuilder (aplikácia, db.session) |
3 | Vytvorte správcovského používateľa | python manage.py createsuperuser | flask fab create-admin |
4 | Databázy a ORMS | Zabudovaný ORM pre RDBMS Pre backend NoSQL použite Django-nonrel | Nainštalujte Flask-SQLAlchemy Flask-Extension špecifický pre NoSQL, ako je Flask-MongoEngine |
5 | Pohľady a trasy | URLConf v urls.py z cesty importu django.urls z .importových zobrazení urlpatterns = ( cesta („/ cesta“, views.handler_method), # ďalšie adresy URL a manipulátory ) | Na zobrazenie trasy pomocou funkcie použite dekorátor @ app.route („/ path“) v službe Views. @ app.route („/ cesta“) def handler_method (): # iný kód s ďalšou logikou |
6 | Šablóny na vykreslenie | V pohľadoch z django.shortcuts import vykreslenia def example_view (požiadavka): tempvar = ”value_for_template” spätné vykreslenie ( žiadosť, „Demo.html“, {'Tempvar': tempvar} ) | V pohľadoch od. importovať aplikáciu z požiadavky na dovoz banky z flaskového importu render_template @ app.route („/ cesta“) demo ukážky (): tempvar = ”value_for_template” vrátiť render_template ( „Demo.html“, temp_var = temp_var ) |
8 | Flexibilita | Menej flexibilné | Flexibilnejšie |
9 | Rozhodnutia o dizajne | Menej dizajnových rozhodnutí s vývojármi. | Viac slobody pre vývojárov. |
10 | Odchýlka projektu | Menej odchýlok od cieľov projektu. | Viac odchýlok kvôli slobode poskytovanej vývojárom. |
jedenásť | Veľkosť kódovej základne | Väčšia kódová základňa | Menšia kódová základňa |
12 | Počet rozhraní API | Viac rozhraní API | Menej API |
13 | Typ aplikácie | Plnohodnotné webové aplikácie | Menšie aplikácie / mikroslužby |
14 | RESTful aplikácie | Django REST framework pre RESTful aplikácie. | Nasledujúce prípony použite pre aplikácie RESTful. Flask-RESTful Banka-RESTX Prihlásiť sa |
pätnásť | Výkon | Ak je počet požiadaviek vysoký, pomalý výkon. | Konzistentný výkon po celú dobu. |
16 | Príspevky otvoreného zdroja | Ďalší počet vidličiek, hodiniek a záväzkov. | Menší počet vidličiek, hodiniek a záväzkov. |
17 | Vývojári | Vyžaduje skúsených vývojárov a nie je ľahké ich získať. | Väčšina vývojárov je menej skúsených a nachádza sa ich v primeranom počte. |
Uzol Flask Vs
Pokiaľ ide o vývojový zásobník webu, ukazuje sa, že vývoj pre web vyžaduje zlúčenie rôznych technológií. Musíme rozdeliť webovú aplikáciu na frontend a backend. Front-endová časť aplikácie je najlepšie vyvinutá v technológiách, ktoré bežia v prehliadači, ako sú JavaScript, HTML a CSS.
Backend je všeobecne vyvíjaný v jazykoch, ktoré sú vhodné na strane servera a v prípade potreby môžu komunikovať s podkladovým operačným systémom, pripojenými databázami alebo sieťou.
Rámec založený na JavaScripte s názvom NodeJS však zmenil vyššie uvedený pohľad a umožnil vývojárom mať konzistentnosť a jednotnosť pri vývoji front-endu aj back-endu pre webové aplikácie. Vývojári mohli pre backend vyvíjať pomocou JavaScriptu.
V tejto časti Flask vs Node porovnávame Flask, ktorý je frameworkom založeným na programovacom jazyku Python, s Node, ktorý je založený na runtime JavaScriptu prehliadača Chrome na rôznych kritériách, ako je architektúra, rýchlosť, podpora komunity atď.
# | Kritériá | Banka | Uzol |
---|---|---|---|
7 | Ladenie | Ľahšie ladenie pomocou ladiaceho programu Python bez závislostí. | Vyžaduje si väčšie úsilie. Ľahšie s vývojovým IDE s knižnicou Bluebird / Promise Library. |
1 | Language Runtime | Python | JavaScriptový motor V8 prehliadača Chrome |
dva | Architektúra | Neblokujúci I / O vyžaduje použitie neblokujúcich webových serverov, ako napríklad gunicorn. Kategória mikrorámcov (zadná časť). | Inherentne Poskytuje neblokujúce I / O. Fullstack kategória |
3 | Správca balíkov | pip | nad úrovňou mora |
4 | Rýchlosť | Pomalšie kvôli samostatnému tlmočníkovi Pythonu. | Rýchlejšie vďaka kompilátoru Just-In-Time. |
5 | Open source | Áno | Áno |
6 | Podpora komunity | Na Githube Hodinky 2.3 K 51,4 K hviezdy 13,7 K vidlice | Na Githube 2,9 K hodinky 71,9 K hviezdy 17,6 K vidlice |
8 | Údržba | Nízka údržba | Vyššia údržba |
9 | Aplikácie v reálnom čase | Vo svojej podstate nevhodné. Môže však fungovať spolu s socket.io pre prípady použitia v reálnom čase. Použite rozšírenie Flask-socketio. | Vhodné kvôli architektúre riadenej udalosťami a streamovacím modulom. Vo svojej podstate asynchrónne. |
10 | Knižnice | Vyspelejší a stabilnejší. | Menej vyspelý a stabilný, ale v rámci aktívneho vývoja a opráv. |
jedenásť | Kvalita kódu | Je vytvorený výhradne pre zadný koniec. | Niekedy je ohrozená z dôvodu prechodu nových koncových vývojárov na backend. |
12 | Zloženie vývojárskeho tímu | Tímy sa zvyčajne skladajú z vývojárov typu back-end a front-end vývojárov. Obavy sú samostatné. | Vývojári si môžu vymieňať úlohy a pracovať pre klientske rozhrania aj rozhrania. |
13 | Integrácia s existujúcim systémom a aplikáciami | Ľahšie sa integruje s ostatnými existujúcimi staršími back-endovými aplikáciami pomocou Pythonovho ekosystému pre strojové učenie a big data aplikácie. | Celkom nové a vyžaduje vytvorenie vlastných alebo nových knižníc na integráciu s inými existujúcimi aplikáciami. |
často kladené otázky
Otázka 1) Čo by som sa mal naučiť ako prvé, Django alebo Flask?
Odpoveď: Je lepšie ísť najskôr s Flask. Keď získate malé skúsenosti s vývojom webu, môžete sa venovať Djangu. Django predpokladá, že už viete, ako fungujú webové aplikácie, a o väčšinu funkcií sa stará sám.
Otázka 2) Je Flask alebo Django lepší?
Odpoveď: Baňka aj Django sú vynikajúce a hodia sa na svoj účel. Django sa používa na vytváranie poprednejších podnikových aplikácií. Banka sa používa na vytváranie statických a menších aplikácií. Banka je vhodná aj na prototypy. S použitím rozšírení Flask však môžeme vytvárať aj veľké aplikácie.
Otázka č. 3) Aké spoločnosti používajú banku?
otázky a odpovede na pohovor s podporou desktopu pre úroveň l2 pdf
Odpoveď: Niektoré zo spoločností, ktoré používajú Flask, sú Reddit, Mailgun, Netflix, Airbnb atď.
Otázka č. 4) Aké stránky používajú Django?
Odpoveď: Niektoré zo stránok, ktoré používajú Django, sú Instagram, Spotify, YouTube, Dropbox, Bitbucket, Eventbrite atď.
Záver
Nemali by sme sa naozaj dlho fixovať na jeden rámec. Mali by sme byť pripravení naučiť sa nové súbory technológií a prijať trendy v rade. Niektorí z nás chcú porovnateľne po vybalení z krabice prístupy s batériou s rigidnými cyklami uvoľňovania, udržiavaním prísnejšej spätnej kompatibility atď.
Ak si myslíte, že patríte viac do tejto skupiny, musíte zvoliť Django. Je však neuveriteľné kráčať spolu s novými funkciami a flexibilitou aj rámca Flask. Ak chcete zachovať konzistenciu medzi frontendom a backendom, môžete si zvoliť full-stack framework, napríklad NodeJS.
Ísť s rámcom je skôr voľba, ktorá závisí od kontextu a problémov, ktoré sa snažíme vyriešiť. Výber rámca je vždy ťažký. Dúfame, že sme v tejto príručke predstavili základné body kontroly, ktoré vám pomôžu dokončiť jeden rámec. Odporúčame však naučiť sa oba rámce.
Je jednoduchšie začať s Flask a potom prejsť na Django po získaní skúseností v oblasti vývoja webových aplikácií. Ak vaše vývojové úsilie z nejakého dôvodu vyžaduje použitie JavaScriptu, môžete pokračovať v NodeJS.
=> Skontrolujte VŠETKY návody pre banky
Odporúčané čítanie
- Výukový program pre Python Django - Začíname s programom Django
- Dizajnové vzory banky a osvedčené postupy pre webové aplikácie
- Šablóna banky, formulár, pohľad a presmerovanie s príkladmi
- Najobľúbenejších 31 dotazov na rozhovor s pythonovskou bankou s odpoveďami
- Ako nastaviť testovací rámec Node.js: Výukový program Node.js
- Výukový program TestNG: Úvod do rámca TestNG
- Rámec riadený kľúčovým slovom na seléne s príkladmi
- Výukový program Robot Framework - Funkcie a inštalácia softvéru