Django: Python on Rails
A Django keretrendszer bemutatása
Rails-szerű keretrendszerek
- Don't Repeat Yourself (DRY)
- Rövid, áttekinthető kód
- MVC minta alkalmazása
- Automatizmus
- Összetett, transzparens objektumok
A
Ruby on Rails-ről a Weblabor oldalán olvasható átfogó cikk Bártházi András tollából.
Bemutatkozik a Python
- Tisztán objektumorientált
- Ragyogó modulszervezés
- Struktúrált kód, könnyen tanulható nyelvtan
- Hordozható (interpreter, bájtkód)
- Interaktív shell
- Egg csomagok
- C modul tapasztás
The Zen of Python
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
[...]
Ki használ Pythont?
- LAMP/WAMP modellek
- Google (Guido van Rossum)
- Zope (Plone), CherryPy (TurboGears), Django
Bemutatkozik a Django
- Django Reinhardt kiváló cigány dzsezzgitáros
- RoR ihlette keretrendszer (TurboGears kompetítora)
- Nem használt fel meglévő modulokat
- Fejlesztői stádium (<= 1.0)
- Támaszkodik a Python kitűnő lehetőségeire
- BSD licenc
- OS X, Un*x, Win32
Django ismérvei
- MVT (Model-View-Template) minta
- Dinamikus adatbázis-hozzáférés API
- Automatikusan generált admin felület
- ActiveRecord minta
- URL központú szervezés
- Sablon örökítés
- Többnyelvű felületek támogatása
- MySQL, PostgreSQL, SQLite támogatott
Miről lesz szó?
- Megvalósítandó feladat ismertetése
- Django telepítése
- Munkakörnyezet beállítása
- Alkalmazás fejlesztése
Célkitűzés
- Blogmotor építése
- Írások felvitele (Post)
- Írások címkézése (Tag)
- Írások véleményezése (Comment)
Django telepítése
- >= Python 2.3
- Adatbázis kötések
- Tarball, Python Egg, SVN
- Lighttpd (FastCGI), Apache (mod_python), beépített webszerver
python setup.py install
Adatmodellek (datamodels)
- meta.Model leszármazott
- Adattagjai egyben adatbázis mezők
- Metódusok
- Admin: belső META osztály
- Modellek befűzése (
settings.py
)
blog.py
Nézzük meg a blog.py forráskódját!
Nézetek (views)
- Saját nézetek készítése (
views.py
)
- Generic views
- Lekérdezések összekötése a nézetekkel (
urls.py
)
Saját nézet írása
- Egy metódus egy nézetért felelős
- Kérés (request) objektumot kap
- HTTP válasz (response) objektummal kell visszatérnie
views.py
Tekintsük meg a views.py forráskódját!
urls.py
Tekintsük meg az urls.py forráskódját!
single.html
Vessünk egy pillantást a single.html kódjára!
Mit is csináltunk?
- Feltelepítettük a Djangót
- Kitűztük a feladatot
- Készítettünk adatmodelleket
- Készítettünk nézeteket
- Az
urls.py
-on keresztül összekapcsoltuk őket
- A kimenetet sablonokba rendeztük
Miről is volt szó?
- Ruby On Rails
- Django, avagy Python on Rails
- Nyíltforrású, multiplatformos
- Hatékony, gyors fejlesztés
- Észszerű koncepciók
Köszönöm a figyelmet!
Django: Python On Rails
Magyarországi Web Konferencia 2006