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 Següent revisió Ambdós costats nova versio | ||
django_lliga [2023/04/13 16:42] enric_mieza_sanchez [Menu form] |
django_lliga [2023/06/22 20:21] manuel_jose_moles_canal [Seeder per creació de dades d'exemple] |
||
---|---|---|---|
Línia 13: | Línia 13: | ||
- Una taula de classificació per cada lliga, que compti els punts dels partits celebrats, gols a favor i en contra de cada equip. | - Una taula de classificació per cada lliga, que compti els punts dels partits celebrats, gols a favor i en contra de cada equip. | ||
- Una taula de " | - Una taula de " | ||
+ | |||
+ | {{ futbol-chilena.png? | ||
Referències: | Referències: | ||
Línia 19: | Línia 21: | ||
* [[Django Frontend]] ídem. | * [[Django Frontend]] ídem. | ||
- | {{tag> #Daw #DawMp07 #DawMp07Uf2 django framework web }} | + | {{tag> #Daw #DawMp07 # |
\\ | \\ | ||
+ | |||
+ | <WRAP tip> | ||
+ | Podeu veure una mostra d' | ||
+ | </ | ||
===== Crear projecte ===== | ===== Crear projecte ===== | ||
Línia 188: | Línia 194: | ||
En particular [[https:// | En particular [[https:// | ||
- | Podem crear el //seeder// dins una [[https:// | + | Podem crear el //seeder// dins una [[https:// |
- | $ ./admin.py crea_lliga "Lliga fake 2" | + | $ ./manage.py crea_lliga "Lliga fake 2" |
L' | L' | ||
Línia 402: | Línia 408: | ||
===== Formularis ===== | ===== Formularis ===== | ||
- | Referències | + | <WRAP info> |
- | * [[https:// | + | Podeu llegir referències |
- | * [[https:// | + | </WRAP> |
- | * [[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 | + | |
- | - Plantilla // | + | |
- | - Utilitzar objecte '' | + | |
- | - Utilitzar objectes més sofisticats com '' | + | |
- | - Utilitzar | + | |
- | + | ||
- | El processament del formulari és sempre similar (menys en el cas de les //generic views//). | + | |
==== Menu form ==== | ==== Menu form ==== | ||
Línia 475: | Línia 460: | ||
===== Exercicis ===== | ===== Exercicis ===== | ||
<WRAP todo> | <WRAP todo> | ||
+ | **Formularis** | ||
+ | |||
Elabora formularis per: | Elabora formularis per: | ||
- Crear lliga. | - Crear lliga. | ||
+ | * Assegura' | ||
+ | * Pots fer-ho amb Form o amb ModelForm. | ||
- Crear equip. | - Crear equip. | ||
- Assignar equips a una lliga (afegir o treure). | - Assignar equips a una lliga (afegir o treure). | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | **Workflow** | ||
Elabora el // | Elabora el // | ||
Línia 489: | Línia 482: | ||
</ | </ | ||
- Protegeix les rutes per tal que només puguin entrar usuaris loguejats. | - Protegeix les rutes per tal que només puguin entrar usuaris loguejats. | ||
+ | </ | ||
+ | |||
+ | <WRAP todo> | ||
+ | **View avançada** | ||
Elabora una pàgina de visualització d'un partit en temps real. Ens mostrarà el resultat actual i a continuació una llista amb els Events que van sortint en temps real. Caldrà refrescar el resultat un cop cada 5 segons. Pots implementar crides AJAX com es descriu a [[Django API]]. | Elabora una pàgina de visualització d'un partit en temps real. Ens mostrarà el resultat actual i a continuació una llista amb els Events que van sortint en temps real. Caldrà refrescar el resultat un cop cada 5 segons. Pots implementar crides AJAX com es descriu a [[Django API]]. | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Integrant AJAX en Django ===== | ||
+ | |||
+ | Per poder utilitzar AJAX en Django caldrà disposar d'una API, pots consultar com fer-ho a [[Django API]]. | ||
+ | |||
+ | Les crides AJAX caldrà implementar-les dins el codi JS, que en el cas de Django ha d'anar dins els arxius estàtics o dins la pròpia plantilla HTML. | ||
+ | |||
+ | ==== Exercicis ==== | ||
+ | |||
+ | {{ django: | ||
+ | |||
+ | <WRAP todo> | ||
+ | Crea els endpoints per a les APIs (recorda consultar [[Django API]]: | ||
+ | * / | ||
+ | * / | ||
+ | |||
+ | Crea la pàgina '' | ||
+ | * Selector de lliga | ||
+ | * Selector d' | ||
+ | * Selector d' | ||
+ | * Botó " | ||
+ | |||
+ | Tots els selectors estan buits inicialment. Els omplirem utilitzant les APIs abans creades. | ||
+ | |||
+ | El selector de lliga es crearà immediatament al carregar la pàgina. Els selectors d' | ||
+ | |||
+ | Un cop seleccionem la lliga i els equips, pots habilitar el botó " | ||
+ | |||
+ | Fes un control d' | ||
+ | * S'ha seleccionat el mateix equip local i visitant: error. | ||
+ | * Si el partit ja existeix, no cal crear-ho. | ||
+ | * Si el partit no existeix, es crea. | ||
+ | |||
+ | Finalment oferim el link per a editar el partit (afegir Events) en una nova //view//. | ||
</ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== Autenticació ===== | ||
+ | <WRAP info> | ||
+ | Per saber més de com autenticar-nos pots llegir [[Django Auth]] | ||
+ | </ | ||
+ | |||
+ | \\ | ||