Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia | ||
|
django_frontend [2023/01/10 19:25] enric_mieza_sanchez [Crear nova view llista] |
django_frontend [2023/07/06 07:00] (actual) raquel_alaman_navas |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| ====== Django framework: frontend ====== | ====== Django framework: frontend ====== | ||
| + | |||
| + | [[Django]] és un framework web basat en Python molt popular. Està orientat a la rapidesa de desenvolupament, | ||
| - | Django | + | En aquest article tenim per objectius: |
| - | + | * Entendre el funcionament bàsic del paradigma MTV (Model-Template-View) de Django. | |
| - | Django és conegut com "The web framework for perfectionists with deadlines" | + | * Clarificar el seu funcionament abans de seguir amb els tutorials oficials |
| + | * Entendre | ||
| + | * Veure alguns casos d'ús típics. | ||
| {{ django-logo.png? | {{ django-logo.png? | ||
| Línia 9: | Línia 13: | ||
| {{tag> #FpInfor #Daw #DawMp07 #DawMp07Uf2 # | {{tag> #FpInfor #Daw #DawMp07 #DawMp07Uf2 # | ||
| + | \\ | ||
| - | ===== Objectius ===== | ||
| - | Entendre el funcionament bàsic del paradigma MTV (Model-Template-View) de Django. Clarificar el seu funcionament abans de seguir amb els tutorials oficials en les parts 2,3,6. | ||
| - | |||
| - | Entendre la separació per capes i l' | ||
| ===== Referències ===== | ===== Referències ===== | ||
| - | Pàgina de referència del // | + | Referències: |
| - | + | * Site oficial: [[http:// | |
| - | Apunts previs: [[https://cacauet.org/wiki/index.php/Django]] | + | * [[Django]] en aquesta wiki: setup, administració i posada en producció. |
| + | * [[https:// | ||
| + | * [[https://developer.mozilla.org/en-US/docs/ | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[Integració de Django | ||
| - | La documentació de Django és molt bona, tant en les referències tècniques com el [[https:// | + | La documentació de Django és molt bona, tant en les referències tècniques com el [[https:// |
| - | El tutorial oficial | + | El tutorial oficial |
| - | - Backend (parts 1,2,7) | + | - Base i admin panel : parts 1, 2, 7 |
| - | - Frontend (parts 3,4,6) | + | - Views al frontend : parts 3, 4, 6 |
| + | - Testing : part 5 | ||
| - | Per seguir aquest exercici cal haver fet prèviament la part de //backend//. | + | Per seguir aquest exercici cal haver fet prèviament la part de //base i admin panel//. |
| Línia 127: | Línia 134: | ||
| ==== Afegir un template (plantilla) ==== | ==== Afegir un template (plantilla) ==== | ||
| Crea nova carpeta '' | Crea nova carpeta '' | ||
| + | |||
| A dins crearem l' | A dins crearem l' | ||
| - | <sxh html> | + | |
| + | <file html polls/ | ||
| < | < | ||
| < | < | ||
| < | < | ||
| - | < | + | < |
| </ | </ | ||
| < | < | ||
| Línia 139: | Línia 148: | ||
| <ul> | <ul> | ||
| {% for element in elements %} | {% for element in elements %} | ||
| - | < | + | < |
| {% endfor %} | {% endfor %} | ||
| </ | </ | ||
| Línia 145: | Línia 154: | ||
| </ | </ | ||
| </ | </ | ||
| - | </sxh> | + | </file> |
| + | |||
| + | <WRAP important> | ||
| + | Si et dona un error '' | ||
| + | <file settings.py> | ||
| + | INSTALLED_APPS = [ | ||
| + | ' | ||
| + | ... | ||
| + | ' | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | </WRAP> | ||
| ==== Renderitzar dades des de la view ==== | ==== Renderitzar dades des de la view ==== | ||
| Per poder visualitzar el contingut del // | Per poder visualitzar el contingut del // | ||
| - | <sxh python> | + | <file python |
| def llista(request): | def llista(request): | ||
| - | items = Option.objects.all() | + | items = User.objects.all() |
| return render( request, " | return render( request, " | ||
| { | { | ||
| Línia 159: | Línia 180: | ||
| ) | ) | ||
| - | </sxh> | + | </file> |
| + | |||
| + | \\ | ||
| ===== Filtrat amb paràmetres GET ===== | ===== Filtrat amb paràmetres GET ===== | ||
| Línia 184: | Línia 207: | ||
| **Fixa' | **Fixa' | ||
| + | |||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Formularis ===== | ||
| + | <WRAP tip> | ||
| + | Pel // | ||
| + | </ | ||
| + | |||
| + | Referències sobre formularis: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Altres: | ||
| + | * https:// | ||
| + | |||
| + | Un formulari sempre implica diverses passes: | ||
| + | - Crear el formulari (pot ser senzill o més complex, i necessitarà codi). | ||
| + | - Processar les dades del formulari. | ||
| + | - Mostrar un resultat: pot ser senzill (operació OK), o complex (mostrar classificació). Sovint és molt pràctic fer una redirecció cap a una altre //view// i repartir la complexitat en diverses parts del codi. | ||
| + | |||
| + | Cada pas abans descrit pot necessitar el seu **template** i la seva **view**. A la //view// crearem i filtrarem les dades adequades per passar-les al // | ||
| + | |||
| + | En Django tenim, al menys, 4 aproximacions per a realitzar formularis: | ||
| + | - Plantilla // | ||
| + | - Utilitzar objecte '' | ||
| + | - Utilitzar objectes més sofisticats com '' | ||
| + | - Utilitzar [[https:// | ||
| + | |||
| + | El processament del formulari és sempre similar (menys en el cas de les //generic views//). | ||
| + | |||
| + | \\ | ||
| + | |||
| + | <WRAP info> | ||
| + | Podeu veure mes exemples a l' | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== Autenticació ===== | ||
| + | <WRAP info> | ||
| + | En el frontend és important utilitzar la [[Django Auth]]. | ||
| + | </ | ||
| + | |||
| + | \\ | ||