Django

De Cacauet Wiki
Salta a la navegació Salta a la cerca

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:

A partir d'aquí podrem plantejar un projecte que implementi tot el CRUD en el backend.

  1. 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.
  2. Implementa el model amb Django.
  3. Mira si pots incloure inlines en alguna de les entitats del model.
  4. Planteja't si la interfície que tens ara mateix et serveix com a backend o si necessita alguna restricció.
  5. Planteja la lògica de negoci.
  6. 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

Plug-ins interessants:


Desplegament

Desplegament:

  • En servidor web mitjançant WSGI en Apache i Nginx
  • En servidor d'aplicacions: Heroku, Openshift