Django
Django és un framework web basat en Python molt popular. Està orientat a la rapidesa de desenvolupament.
Django or "The web framework for perfectionists with deadlines".
Introducció
Pàgina oficial:
https://www.djangoproject.com/
Es basa en un paradigma MTV o Model-Template-View. És similar al arxiconegut MVC o Model-View-Controller, però la terminologia pot induir a confusions. En el cas de MVC, la view és la part visual o GUI, mentre que en el MTV, la view és el codi amb la lògica de negoci (equivaldria al controller del MVC).
ULL doncs amb els noms!
Model - View - Controller Model - Template - View
Django està molt implantat a tot el món web, disposa de gran prestigi i té un creixement ràpid de desenvolupadors i ofertes de feina relacionades.
Preparatius i instal·lació
Per desenvolupar amb Django ens serà molt útil (per no dir imprescindible) utilitzar Virtualenv.
Abans de començar, configura el teu entorn com s'explica en aquest article.
Backend
Per treballar el backend podem fer ús dels tutorials oficials de Django. Aquí tens accés a la PART 1
https://docs.djangoproject.com/en/1.10/intro/tutorial01/
Per poder dominar mínimament les possibilitats del backend segueix al menys aquestes parts del tutorial:
- Django tutorial Part 1: creació de projecte i primera view
- Django tutorial Part 2: model, BD, admin backend
- Django tutorial Part 7: customize admin i inlines
- Investiga la propietat list_editable del ModelAdmin. Per a què serveix?
A partir d'aquí podrem plantejar un projecte que implementi tot el CRUD en el backend.
- Planteja el projecte al professor. Que et doni el vist-i-plau abans de començar. El projecte hauria d'incloure usuaris i permisos diversos.
- Implementa el model amb Django.
- Mira si pots incloure inlines en alguna de les entitats del model.
- Planteja't si la interfície que tens ara mateix et serveix com a backend o si necessita alguna restricció.
- Planteja la lògica de negoci.
- Implementa restriccions del model perquè s'adapti a la lògica de negoci.
Frontend
Tutorial:
- Part 3: views, templates
- Part 4: forms
- Part 6: fitxers estàtics i CSS
Desplegament
Desplegament:
- En servidor web mitjançant WSGI en Apache i Nginx
- En servidor d'aplicacions: Heroku, Openshift