Desenvolupament d'aplicacions web amb frameworks
Contingut
Què és un framework?
Per començar, us reprodueixo el què explica la web de Pyramid, un conegut framework per Python, que compara la idea de llibreria i framework:
Frameworks vs. Libraries
A framework differs from a library in one very important way: library code is always called by code that you write, while a framework always calls code that you write. Using a set of libraries to create an application is usually easier than using a framework initially, because you can choose to cede control to library code you have not authored very selectively. But when you use a framework, you are required to cede a greater portion of control to code you have not authored: code that resides in the framework itself. You needn’t use a framework at all to create a web application using Python. A rich set of libraries already exists for the platform. In practice, however, using a framework to create an application is often more practical than rolling your own via a set of libraries if the framework provides a set of facilities that fits your application requirements.
Podriem dir, en resum, que un framework és:
- Un seguit de llibreries
- Uns mecanismes de control (en el cas del web, seria el servidor web)
- Un conjunt de bones pràctiques ...molt important!!
Separació de codi i disseny
Una de les bones pràctiques més importants en el disseny de software és el separar el codi funcional (la manipulació de les dades) del que serà la presentació a l'usuari.
Model multicapa
L'arquitectura multicapa o multi-tier pot tenir diverses capes (també s'anomena N-layer) però acostuma a presentar-se el model de 3 nivells:
- Nivell de Dades: s'ocupa de la persistència, incloent bases de dades i emmagatzematge d'arxius. També inclou les APIs d'accés a les dades que utilitzarà la capa de lògica de negoci.
- Nivell de Lògica: en general ens referim a la Business Logic
- Nivell de Presentació: renderització concreta del contingut a l'usuari.
Frameworks i microframeworks
Han sorgit molts microframeworks per desenvolupament superràpid, tot i que per a grans projectes potser els pot faltar algunes features que podem voler.
Frameworks Python:
- Django: és el que treballarem aquest curs
- Pyramid:
- Pyramid (oficial)
- Python: Pyramid framework (a cacauet.org)
Microframeworks Python:
Frameworks PHP:
Exercici amb microframeworks
Per introduir-nos definitivament en el fabulós món dels frameworks us proposo aquest exercici:
- Tria un microframework (recomano Flask ja que el model de templates -jinja2- està copiat de Django)
- Instal·la't el virtualenv per facilitar el teu entorn de desenvolupament.
- Fes la prova de "Hello World!" per començar a introduir-te.
- Posa el servidor web de desenvolupament en mode DEBUG per facilitar l'auto-reload del projecte quan modifiquis els arxius.
- Afegeix un template per renderitzar una pàgina HTML.
- Prova de crear un template que impliqui l'ús de loops, com per exemple una taula o un calendari.
- Prova de passar variables al template, per exemple, títol de la pàgina o el mes de l'any que vols renderitzar.
- ... posa-li imaginació!!!