Bře 14

Django, odpověď Pythonu na Ruby On Rails

I když Ruby je dle statistik mírně populárnější než Python, Python je mou osobní volbou na poli programovacích jazyků. Jedna věc se ale Ruby nedá upřít. A tou je způsob jakým se dokáže prodat (hlavně nově příchozím ovečkám z řad PHP).

Nevýhodou Pythonu bylo až donedávna velký výběr Web Frameworků, zatím co pro Ruby existuje de-facto jen jeden: Ruby On Rails. Až přednedávnem přišel Python se standardem WSGI, jednotící komunikaci mezi web serverem a aplikační vrstvou.

Standard WSGI je sám o sobě pěkný (využívá ho například projekt Paste, jednotící pomocí WSGI své jednotlivé komponenty), ale Python potřeboval konkurenci k RoR.

A tu našel v podobě projektu Django.

Django propaguje princip DRY (Don’t repeat yourself – Neopakujte se). Když už raz napíšete kód, například ke utříděnému zobrazování položek z databáze, framework je navržen tak, aby se dal tento kód znovu použít s minimálními úpravami v jiné části projektu.

Projekt v Djangu se skládá z takzvaných „aplikací“. Každá aplikace má (ale nemusí) svůj datový model napsaný jako třídy v Pythonu (tyto třídy jsou pak mapovány do relační databáze, Django podporuje řadu databází, včetně SqlLite nebo MySQL). Další částí jsou takzvané Views, ty se starají o zobrazení modelu pomocí šablon (templates). Django má svůj šablonovací jazyk, ale dá se rozšířit i o jiné dialekty. Abych se přiznal, tohle je část Djanga, které jsem přicházel dlouho na chuť (a ještě stále přicházím). V šablonách Djanga se totiž nedá psát Pythonovský kód, umožňuje jen základní tagy jako jsou if..else, for..loop a podobně (což je na druhou stranu dobře, nutí to programátora nepsat „špageta kód“)

Pro načítání dat směrem od uživatele se používá tzv. Newforms. Je to soubor utilit a tříd, které se starají o validaci dat z HTML formulářů a korekci případných chyb.

Toto je jen povrchní přelet co je to vlastně Django. Kdo se o tuhle oblast trochu zajímá a má rád jazyk Python, web framework Django mu odporoučím vyzkoušet, stojí fakt za to.

Na závěr přidám pár projektů, které běží pod Djangem:

0
comments

Reply