Django - ismerkedés
Posted by Lázár István
A Django egy magas szintű, Python programozási nyelvet használó webes keretrendszer, amely biztonságos és karbantartható webhelyek gyors fejlesztését teszi lehetővé. Ingyenes és nyílt forráskódú. Megoldást kínál a webfejlesztés során jelentkező feladatok jelentős részére, így az alkalmazás megírására koncentrálhatunk anélkül, hogy újra fel kellene találnink a kereket.
A Django keretrendszer főbb jellemzői:
- Beépített komponensek. A Django több tucat komponenst tartalmaz, amelyek segítségével a gyakori webfejlesztési feladatok elvégezhetőek. Többek között gondoskodik például a felhasználói hitelesítésről, a tartalomadminisztrációról, a webhelytérképekről, az RSS-hírcsatornákról és még sok más feladatról – kulcsrakészen, azonnal.
- Biztonságos. A Django komolyan veszi a biztonságot, és segít a fejlesztőknek elkerülni számos gyakori biztonsági hibát, például az SQL-befecskendezést, a cross-site script alkalmazását, a webhelyek közötti kérések hamisítását és a clickjacking. Felhasználó-hitelesítési rendszere biztonságos módot biztosít a felhasználói fiókok és jelszavak kezelésére.
- Sokoldalú. A Django szinte bármilyen típusú webhely készítésére használható – a tartalomkezelő rendszerektől és wikiktől kezdve a közösségi hálózatokig és híroldalakig. Bármilyen kliensoldali keretrendszerrel működik, és szinte bármilyen formátumban képes tartalmat szállítani (beleértve a HTML-t, az RSS-hírcsatornákat, a JSON-t, az XML-t stb.).
- Méretezhető. A Django komponens alapú architektúrát használ. Az architektúra minden része független a többitől, ezért szükség esetén cserélhető vagy módosítható. A különböző részek egyértelmű elválasztása azt jelenti, hogy bármilyen szintű hardver hozzáadásával növelheti a forgalmat: gyorsítótárazó szerverek, adatbázis-kiszolgálók vagy alkalmazáskiszolgálók. A legforgalmasabb oldalak közül néhány sikeresen méretezte a Django-t, hogy megfeleljen az igényeiknek (pl. Instagram és Disqus, hogy csak kettőt említsünk)
- Könnyen karbantartható. A Django kód olyan tervezési elvek és minták alapján készült, amelyek karbantartható és újrafelhasználható kódok létrehozását ösztönzik. Előnyben részesíti a Don't Repeat Yourself (DRY) elvet, így csökkentve a kód mennyiségét. A Django a Model View Template (MVT) architektúra alkalmazását prferálja.
- Hordozható. A Django Python nyelven íródott, amely számos platformon fut. Ez azt jelenti, hogy Ön nincs kötve egyetlen szerverplatformhoz sem, és alkalmazásait számos Linux, Windows és Mac OS X rendszeren futtathatja.
A Django egy nyílt forráskódú projekt, sok ezer felhasználóval és közreműködővel, ami bármilyen típusú webhely fejlesztésére képes.
Hogyan működik?
A webalkalmazás a webböngészőtől (vagy más klienstől) érkező HTTP-kérésekre vár. Amikor egy kérés érkezik, az alkalmazás az URL és esetleg az POST vagy GET adatokban található információk alapján kidolgozza, hogy milyen feladat ellátására van szükség. A feladattól függően, információkat olvashat vagy írhat egy adatbázisba, vagy végrehajthat más, a kérés teljesítéséhez szükséges feladatokat. Az alkalmazás ezután választ küld a webböngészőnek, és gyakran dinamikusan hoz létre egy HTML-oldalt, amelyet a böngésző megjeleníthet úgy, hogy a letöltött adatokat egy HTML-sablon helyőrzőibe illeszti be.
A Django webalkalmazásai általában külön fájlokba csoportosítják az egyes lépéseket kezelő kódokat:
- URL-ek: Bár lehetséges minden egyes URL-ről érkező kérést egyetlen függvényen keresztül feldolgozni, sokkal karbantarthatóbb, ha külön nézetfüggvényt írunk az egyes erőforrások kezelésére. Az URL-leképező segítségével a HTTP-kérelmeket a kérelem URL-címe alapján a megfelelő nézetbe irányítjuk át. Az URL-leképező az URL-ben megjelenő karakterláncok vagy számjegyek meghatározott mintáit is egyeztetheti, és ezeket adatként továbbítja a nézet funkciónak.
- Nézet: A nézet egy kéréskezelő funkció, amely HTTP kéréseket fogad, és HTTP-válaszokat ad vissza. A nézetek modelleken keresztül hozzáférnek a kérések kielégítéséhez szükséges adatokhoz, és delegálják a válasz formázását sablonokra. Más keretrendszerekben ezen funkciókat a controller-ek látják el.
- Modellek: A modellek Python objektumok, amelyek meghatározzák az alkalmazás adatainak szerkezetét, és mechanizmusokat biztosítanak az adatbázisban lévő rekordok kezelésére (hozzáadása, módosítása, törlése) és lekérdezése.
- Sablonok: A sablon egy szöveges fájl, amely egy fájl (például HTML-oldal) szerkezetét vagy elrendezését határozza meg, helyőrzőkkel a tényleges tartalom megjelenítésére. Egy nézet dinamikusan tud létrehozni egy HTML-oldalt egy HTML-sablon segítségével, feltöltve azt egy modellből származó adatokkal.
Az összefoglaló elkészítéséhez az alábbi oldalakon található információkat használtam fel: