bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


django_lliga

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
django_lliga [2024/06/26 16:06]
enric_mieza_sanchez [Crear model]
django_lliga [2025/05/29 10:14] (actual)
enric_mieza_sanchez [Seeder per creació de dades d'exemple]
Línia 200: Línia 200:
 Els //seeder// són programes que permeten la creació de dades falses per facilitar el test de l'aplicació. Els //seeder// són programes que permeten la creació de dades falses per facilitar el test de l'aplicació.
  
-En particular [[https://faker.readthedocs.io/en/master/|per Python disposem de la llibreria Faker]] que ens facilitarà molt aquesta tasca.+En particular [[https://faker.readthedocs.io/en/master/|per Python disposem de la llibreria Faker]] que ens facilitarà molt aquesta tasca. Instal·leu-la amb: 
 +  (env) $ pip install faker
  
 Podem crear el //seeder// dins una [[https://docs.djangoproject.com/en/stable/howto/custom-management-commands/|comanda personalitzada de Django]] que podrem cridar amb el ''manage.py'' tipus: Podem crear el //seeder// dins una [[https://docs.djangoproject.com/en/stable/howto/custom-management-commands/|comanda personalitzada de Django]] que podrem cridar amb el ''manage.py'' tipus:
Línia 209: Línia 210:
 --> Proposta seeder crea_lliga# --> Proposta seeder crea_lliga#
  
-<file python management/commands/crea_lliga.py>+Creeu les carpetes ''futbol/management/commands'': 
 +  $ mkdir -p futbol/management/commands 
 + 
 +**On <futbol> és la carpeta de l'aplicació dins del projecte Django**. 
 + 
 +Afegiu-hi el següent arxiu: 
 + 
 +<file python lliga/management/commands/crea_lliga.py>
 from django.core.management.base import BaseCommand, CommandError from django.core.management.base import BaseCommand, CommandError
 from django.utils import timezone from django.utils import timezone
Línia 215: Línia 223:
 from datetime import timedelta from datetime import timedelta
 from random import randint from random import randint
 + 
 from lliga.models import * from lliga.models import *
 + 
 faker = Faker(["es_CA","es_ES"]) faker = Faker(["es_CA","es_ES"])
 + 
 class Command(BaseCommand): class Command(BaseCommand):
     help = 'Crea una lliga amb equips i jugadors'     help = 'Crea una lliga amb equips i jugadors'
 + 
     def add_arguments(self, parser):     def add_arguments(self, parser):
         parser.add_argument('titol_lliga', nargs=1, type=str)         parser.add_argument('titol_lliga', nargs=1, type=str)
 + 
     def handle(self, *args, **options):     def handle(self, *args, **options):
         titol_lliga = options['titol_lliga'][0]         titol_lliga = options['titol_lliga'][0]
-        lliga = Lliga.objects.filter(titol=titol_lliga)+        lliga = Lliga.objects.filter(nom=titol_lliga)
         if lliga.count()>0:         if lliga.count()>0:
             print("Aquesta lliga ja està creada. Posa un altre nom.")             print("Aquesta lliga ja està creada. Posa un altre nom.")
             return             return
 + 
         print("Creem la nova lliga: {}".format(titol_lliga))         print("Creem la nova lliga: {}".format(titol_lliga))
-        lliga = Lliga(  titol=titol_lliga, +        lliga = Lliga( nom=titol_lliga, temporada="temporada" )
-                        inici=timezone.now(), +
-                        final=timezone.now()+timedelta(days=11*30))+
         lliga.save()         lliga.save()
 + 
         print("Creem equips")         print("Creem equips")
         prefixos = ["RCD", "Athletic", "", "Deportivo", "Unión Deportiva"]         prefixos = ["RCD", "Athletic", "", "Deportivo", "Unión Deportiva"]
Línia 247: Línia 253:
                 prefix += " "                 prefix += " "
             nom =  prefix + ciutat             nom =  prefix + ciutat
-            equip = Equip(ciutat=ciutat,nom=nom)+            equip = Equip(ciutat=ciutat,nom=nom,lliga=lliga)
             #print(equip)             #print(equip)
             equip.save()             equip.save()
             lliga.equips.add(equip)             lliga.equips.add(equip)
 + 
             print("Creem jugadors de l'equip "+nom)             print("Creem jugadors de l'equip "+nom)
             for j in range(25):             for j in range(25):
-                nom = faker.first_name() +                nom = faker.name() 
-                cognom1 faker.last_name() +                posicio "jugador" 
-                cognom2 faker.last_name() +                edat 25 
-                jugador = Jugador(nom=nom,cognom1=cognom1,cognom2=cognom2,alias=nom+" "+cognom1)+                jugador = Jugador(nom=nom,posicio=posicio, 
 +                    edat=edat,equip=equip)
                 #print(jugador)                 #print(jugador)
                 jugador.save()                 jugador.save()
-                fitxa = Fitxa(jugador=jugador,equip=equip,inici=timezone.now(),dorsal=i+1) + 
-                fitxa.save() +
         print("Creem partits de la lliga")         print("Creem partits de la lliga")
         for local in lliga.equips.all():         for local in lliga.equips.all():
Línia 352: Línia 357:
 </file> </file>
 <-- <--
 +
 +<WRAP todo>
 +**View classificació**
 +
 +Crea la view de classificació i afegeix els següents camps:
 +  * Punts
 +  * Victòries
 +  * Empats
 +  * Derrotes
 +  * Gols a favor
 +  * Gols en contra
 +  * Gol average
 +
 +Afegiu també el nom de la lliga.
 +</WRAP>
  
 \\ \\
Línia 490: Línia 510:
  
 Elabora formularis per: Elabora formularis per:
 +  - Crear jugador (amb ModelForm).
   - Crear lliga.   - Crear lliga.
     * Assegura't que si ja hi ha una lliga amb el mateix nom, no ens deixi guardar.     * Assegura't que si ja hi ha una lliga amb el mateix nom, no ens deixi guardar.
Línia 563: Línia 584:
  
 \\ \\
 +
 +===== Exercicis de consultes =====
 +
 +  - Lligues que contenen la paraula "segona".
 +  - Equips que comença el seu nom amb "Athletic".
 +  - Equips que tenen "North" al nom.
 +  - Equips que acaben el seu nom en "chester".
 +  - Equips que tinguin judadors amb el nom XXX
 +  - Jugadors que hagin marcat algun gol.
 +
  
django_lliga.1719418015.txt.gz · Darrera modificació: 2024/06/26 16:06 per enric_mieza_sanchez