Diferència entre revisions de la pàgina «Desenvolupament d'aplicacions web amb frameworks»
Línia 51: | Línia 51: | ||
<br> | <br> | ||
+ | |||
+ | == 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ó!!! |
Revisió del 14:24, 26 set 2016
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ó!!!