Django vs. Flask, Rails vs. Sinatra

cs v kategorii code • 3 min. čtení
Mind the age! Most likely, its content is outdated. Especially if it’s technical.

Výběr frameworku je vždy náročný úkol. V Pythonu jsou nejznámější webové frameworky Django a Flask, který ale vybrat? Vyzkoušeny mám oba pro velké projekty za různých okolností a nemám výherce. Každý je dobrý k něčemu jinému. V Ruby je podobná volba Rails nebo Sinatra. To, že nemám výherce, ale neznamená, že nevím, po kterém sáhnout. Naopak dnes už to vím přesně. Popíšu na dvou případech:

1) Když jsem začínal BOObook.cz, neměl jsem nic a potřeboval jsem rychle něco mít. Sáhl jsem po Djangu, připravil projekt, a ještě tu noc jsem měl základní kostru se šablonami, formuláři, modelem, databází, sessionou a administrací. Mohl jsem se zaměřit na featury a jakmile něco nevyhovovalo, postupně měnit za svůj kód. Například vyměnit/upravit administraci, vlastní servírování souborů chráněné přihlášením a podobně.

2) Když jsme si v práci řekli, že je na čase přejít na open source framework (z našeho interního z dob, kdy ještě nic takového neexistovalo), sáhli jsme po Flasku. Měli jsme totiž vše a Flask nemá nic. Díky tomu nám dovolil ho použít ihned a postupně přecházet na nové šablony, formuláře, modely, session atp. Byl to sice komplikovanější proces, než začít paralelně na zelené louce, jenže přepsat celou aplikaci by trvalo roky. Nyní máme přechod za sebou a funguje nám jak nová, tak stará, ještě nepřepsaná, část aplikace.

Co to tedy znamená?

Django je all-in-one balíček. Od routingu, přes modely a formuláře až po šablony. Samozřejmě nechybí spoustu šikovných či dokonce potřebných utilit. Tedy nainstalujete, přečtete si dokumentaci, první ukázku a můžete se zaměřit na vaši aplikaci.

Flask je naopak vlastně jen routing a vše se musí poskládat z dalších knihoven dle potřeby. Často Jinja, WTForms, SQLAlchemy a další. Tedy nainstalujete, přečtete si dokumentaci a hledáte best practices, jak komponenty poskládat dohromady pro vaši potřebu.

Z toho vyplývá mé doporučení: pokud nemusíte použít nějaké vlastní komponenty, je lepší sáhnout po Djangu. Díky tomu se lze zaměřit na vývoj webové aplikace a neřešit, jak validovat vstupní data, jak si držet sessionu, jak přistupovat k databázi a dalším zdrojům, … S jednou výjimkou – Django je kanón na vrabce, takže nemá smysl se ho držet pro opravdu miniaturní webovou stránku.

Co Rails vs. Sinatra?

Tam to vidím stejně. S tím, že Django se jmenuje Rails a Flask je Sinatra.

Jediný rozdíl vidím ve výjimce. Chtěl jsem se podívat, co zajímavého nabízí Ruby, a tak ho využil pro jedno API k mému novému pet projektu. Jelikož se jedná o SPA a veškerý kód je v JavaScriptu, sáhl jsem po Sinatře. Což byla asi chyba, jelikož jako ve světe JavaScriptu často lidi radí, jak problém vyřešit s jQuery, ve světe Ruby naopak radí, jak problém vyřešit s Rails. Je pak těžké najít čisté Ruby. Na druhou stranu s Rails bych nevěděl, co znamená čisté Ruby. :-)








Může se vám také líbit

en Makefile with Python, November 6, 2017
en Fast JSON Schema for Python, October 1, 2018
en Deployment of Python Apps, August 15, 2018
cs Jasně, umím Git…, August 6, 2014
cs Checklist na zabezpečení webových aplikací, March 1, 2016

Další články z kategorie code.
Nenechte si ujít nové články díky Atom/RSS kanálu.



Poslední příspěvky

cs Mami, tati, přejde to, December 9, 2023 in family
cs Co vše bychom měli dělat s dětmi?, November 24, 2023 in family
cs O trávicí trubici, November 7, 2023 in family
cs Na šestinedělí se nevyspíš, October 28, 2023 in family
cs Copak to bude?, October 20, 2023 in family