Django

A Django egy magas szintű webes keretrendszer, amely támogatja a gyors fejlesztést és a tiszta és gyakorlatias tervezést.

A keretrendszer fejlesztése még 2005-ben indult, egy média cég megbízásából (LJWorld), de szerencsére open-source keretek között, azóta egy független alapítvány irányítja a projectet. A srácok ügyesen merítettek ötletet az akkoriban épp egyre népszerűbbé váló Ruby on Rails-ből, és igen gyorsan az egyik legnépszerűbb python alapú webes frameworkké tették a Djangot.

Django, a webes keretrendszer

Napjainkra rendkívül nagy szerepe lett a webalkalmazásoknak. A Django egy nyílt forráskódú, magas szintű Python alapú keretrendszer, mely gyors és egyszerű webfejlesztést tesz lehetővé. A Djangot néhány amerikai cég weboldalainak kiszolgálása céljából hozták létre 2005-ben. Azóta folyamatos fejlesztés alatt áll, legutóbb kiadott stabil verziója az 1.3. A Django tehát egy Python programozási nyelven írt „eszköztár”, amely segítségével weboldalakat készíthetünk Python nyelven – felhasználva a keretrendszer által nyújtott eszközöket, szolgáltatásokat. A Django elsődleges célja, hogy megkönnyítse bonyolultabb, adatbázis alapú weboldalak készítését. Ennek megvalósításához két legfontosabb elve és programozási mintája a Don’t Repeat Yourself és a Model-View-Control. Előbbi elv megvalósításához a Djangoban írt weboldalak ún. alkalmazásokból kell, hogy álljanak; míg az MVC modellhez az egyes alkalmazások belső felépítése viszonylag kötött.

Az egyes alkalmazások gyakorlatilag egy-egy Python modulnak felelnek meg. Egy Django projektbe korlátlan számú alkalmazást „beköthetünk”. Az alkalmazások rendelkeznek minden olyan információval, amely az adott modul működéséhez szükséges. Például egy fórum alkalmazás definiálja a fórumhoz szükséges adatmodelleket, a megjelenítéshez szükséges nézeteket, és a nézetek által generált sablonokat is. Ennek a felépítésnek köszönhetően elérhető az, hogy egy jól megírt fórum alkalmazás minimális változtatással bármelyik Django projektben használható. Az alkalmazások újrafelhasználhatóságán túl a Django egyik legnagyobb „fegyvere” az objektumalapú adatkezelés. A weboldalon elérhető összes adat egy-egy objektumként fogható fel, melyet a fejlesztés során definiálnunk kell. A meghatározott objektumokat a Django beépített adatbáziskezelő eszközén keresztül érhetjük el a saját belső utasításokkal és lehetőségekkel, így tehát – amellett hogy a lehetőségünk adott – nincs szükségünk bonyolult SQL vagy egyéb lekérdezések megírására. Az adatok objektumként való kezelése valamint az előzetes pontos meghatározása teszi lehetővé a Django két nagyon jelentős funkcióját. A létrehozott osztálydefiníciók alapján a Django képes automatikusan létrehozni az adatok tárolásához szükséges adatbázis-sémát, vagyis az adattáblákat, a szükséges külső kulcs és egyéb megszorításokat. Mivel nincs szükség SQL lekérdezések írására és a Django beállítástól függően képes többféle adatbázis-kezelő rendszerrel dolgozni, bármikor kicserélhetjük egy projektünket kiszolgáló adatbázisszervert anélkül, hogy a programkódon változtatni kellene.

A keretrendszer másik különleges szolgáltatása, hogy a felépített modeljeinkhez automatikusan készített adminisztrációs felületet biztosít, melyet bizonyos mértékig testre is szabhatunk. Ez az automatikusan generált felület egyedülállónak tekinthető, más keretrendszerek ilyen funkcionalitású és egyszerűen kezelhető felületet nem kínálnak. Meg kell említeni azonban azt is, hogy a felület testreszabhatósága korlátos, így nem valósítható meg benne minden feladat.