Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
|
django_react [2026/04/07 09:43] enric_mieza_sanchez creat |
django_react [2026/04/07 10:20] (actual) enric_mieza_sanchez [Projecte Django] |
||
|---|---|---|---|
| Línia 12: | Línia 12: | ||
| Es podria fer en dos repositoris separats, però per simplicitat ho farem en un sol. Farem un projecte Django i hi posarem la part de React dins la carpeta '' | Es podria fer en dos repositoris separats, però per simplicitat ho farem en un sol. Farem un projecte Django i hi posarem la part de React dins la carpeta '' | ||
| + | |||
| + | ==== Projecte Django ==== | ||
| Com a bona pràctica afegida emprarem el plugin '' | Com a bona pràctica afegida emprarem el plugin '' | ||
| Línia 24: | Línia 26: | ||
| Penseu a afegir l' | Penseu a afegir l' | ||
| + | |||
| + | Hi crearem una app de llibres " | ||
| + | |||
| + | (envdj) $ ./manage.py startapp biblio | ||
| + | |||
| + | Afegim els models de l'app a '' | ||
| + | |||
| + | <file python models.py> | ||
| + | from django.db import models | ||
| + | from django.contrib.auth.models import AbstractUser | ||
| + | |||
| + | class Llibre (models.Model): | ||
| + | titol = models.CharField(max_length=100) | ||
| + | autor = models.CharField(max_length=200) | ||
| + | resum = models.TextField(null=True, | ||
| + | data_edicio = models.DateField() | ||
| + | def __str__(self): | ||
| + | return self.titol | ||
| + | |||
| + | class Usuari(AbstractUser): | ||
| + | auth_token = models.CharField(max_length=32, | ||
| + | # + altres atributs que es vulguin afegir... | ||
| + | </ | ||
| + | |||
| + | <WRAP tip> | ||
| + | És important fer un usuari personalitzat des de l' | ||
| + | </ | ||
| + | |||
| + | Ajustem '' | ||
| + | * Informar del canvi de model de usuari per '' | ||
| + | * Afegir la nova app '' | ||
| + | * Afegir el plugin '' | ||
| + | * Configurar '' | ||
| + | |||
| + | Afegiu la app al '' | ||
| + | |||
| + | <file python settings.py> | ||
| + | AUTH_USER_MODEL = ' | ||
| + | |||
| + | INSTALLED_APPS = [ | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ] | ||
| + | |||
| + | CORS_ALLOWED_ORIGINS = [ | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Afegim els models a '' | ||
| + | <file python admin.py> | ||
| + | from django.contrib import admin | ||
| + | from django.contrib.auth.admin import UserAdmin | ||
| + | |||
| + | from .models import * | ||
| + | |||
| + | |||
| + | class UsuariAdmin(UserAdmin): | ||
| + | fieldsets = UserAdmin.fieldsets + ( | ||
| + | (" | ||
| + | ' | ||
| + | }), | ||
| + | ) | ||
| + | readonly_fields = [" | ||
| + | |||
| + | |||
| + | admin.site.register(Llibre) | ||
| + | admin.site.register(Usuari, | ||
| + | </ | ||
| + | |||
| + | <WRAP info> | ||
| + | **Afegeix alguns elements (llibres) des de l' | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ==== Projecte ReactJS ==== | ||
| Creació del projecte React dins la carpeta '' | Creació del projecte React dins la carpeta '' | ||
| $ npm create vite@latest react | $ npm create vite@latest react | ||
| + | |||
| + | Ja podem començar a fer codi! | ||
| + | |||
| + | \\ | ||
| + | |||
| + | ===== API bàsica amb Django Ninja ===== | ||
| + | |||
| + | Hem tractat la creació d'APIs a l' | ||
| + | |||
| + | Farem una API molt senzilla per llistar els usuaris que tenim a l' | ||
| + | |||