Desarrolla una Aplicación Web de Encuestas con Django y React: Guía Paso a Paso

Desarrolla una Aplicación Web de Encuestas con Django y React: Guía Paso a Paso

Tutorial completo para crear una aplicación web de encuestas con Django y React

En este tutorial encuestas Django React aprenderás a crear una app de encuestas fullstack utilizando Django para el backend y React para el frontend. Te guiaremos paso a paso en la configuración del proyecto, la creación de modelos, desarrollo de una API REST con Django REST Framework, consumo de la API desde React, manejo de estados y un despliegue básico. Este tutorial es ideal para desarrolladores con conocimientos intermedios que desean integrar frontend y backend modernos con un enfoque profesional y didáctico.

Índice


1. Configuración del proyecto Django

Paso 1. Crear y activar un entorno virtual

Paso 2. Instalar Django y Django REST Framework

Paso 3. Crear el proyecto Django

Paso 4. Crear la aplicación “polls”

Paso 5. Registrar la app y REST Framework

Edita encuesta_backend/settings.py:

2. Creación de modelos para encuestas y respuestas

Para una app de encuestas sencilla definiremos dos modelos:

  • Encuesta (Poll) con un título y fecha
  • Opcion (Option) como respuestas posibles de la encuesta

Crear modelos en polls/models.py

Ejecutar migraciones

3. Desarrollo de una API REST con Django REST Framework

Para exponer las encuestas y respuestas a React tendremos una API REST.

Paso 1. Crear serializers en polls/serializers.py

Paso 2. Crear vistas con viewsets en polls/views.py

Paso 3. Configurar rutas en polls/urls.py

Paso 4. Añadir rutas al proyecto principal encuesta_backend/urls.py

Paso 5. Correr servidor Django

Puedes probar la API en http://127.0.0.1:8000/api/encuestas/.

4. Configuración del proyecto React

Paso 1. Crear proyecto React usando Create React App

En una terminal nueva, en la carpeta padre:

Paso 2. Instalar Axios para llamadas HTTP

Paso 3. Estructura base del proyecto

Organiza la carpeta src con:

  • components/ (para componentes React)
  • api.js (configuración de llamadas API)

5. Consumo de la API en React

Paso 1. Configuración inicial src/api.js

Paso 2. Crear componente EncuestaList.js para mostrar encuestas

Paso 3. Usar el componente en src/App.js

Paso 4. Ejecutar React

Abre http://localhost:3000 en el navegador.

6. Manejo de estados en React

En el código anterior manejamos estados con useState para:

  • Listado de encuestas
  • Opción seleccionada
  • Mensajes de estado (cargando, error, éxito)
    También usamos useEffect para cargar la lista de encuestas al montar el componente.
    Para proyectos más grandes, considera usar Context API o librerías como Redux para manejar estados globales.

7. Despliegue básico

Opciones para desplegar la app fullstack:

  • Desplegar backend Django con servicios como Heroku, Railway o render.com
  • Desplegar frontend React en servicios de hosting estático como Netlify o Vercel

Recomendaciones:

  • Usa django-cors-headers para manejar CORS si frontend y backend corren en dominios distintos.
    Instalación y configuración mínima:

En settings.py:

  • Para producción compila React con npm run build y sirve la carpeta build vía servidor web o integrándola en Django con django-webpack-loader o simplificando con nginx.

Conclusión y buenas prácticas

Has completado el Django REST React tutorial para crear una aplicación de encuestas fullstack que consume una API REST desde un frontend React. Estos son puntos clave para consolidar:

  • Mantén modelos y serializers bien estructurados para facilitar mantenimiento.
  • Usa viewsets y routers para acelerar el desarrollo de APIs REST.
  • Gestiona estados en React racionalmente con useState y useEffect para datos asincrónicos.
  • Implementa manejo de errores robusto tanto en backend como en frontend para mejorar la experiencia del usuario.
  • Configura CORS correctamente para evitar problemas de seguridad.
    Invitamos a continuar explorando:
  • Añadir autenticación y autorización (Django Token Auth + React context)
  • Manejar formularios avanzados para crear encuestas dinámicamente desde el frontend
  • Optimizar el despliegue con contenedores Docker
    Si te gustó este tutorial, ¡comparte y suscríbete para más contenido de desarrollo web fullstack Python JavaScript!