NOVO! VPS baseado em EPYC + NVMe

Entrar
+1 (855) 311-1555

Como criar uma aplicação simples com Django e React

15 min de leitura - 28 de novembro de 2025

hero section cover

Table of contents

  • Como criar uma aplicação simples com Django e React
  • ProjetoDjango e React para principiantes - Construir uma aplicação FullStack Notes
  • Requisitos de configuração e instalação
  • Construir o backend com Django
  • Criar o front-end com React
  • Ligar o Django e o React
  • Executar e testar a aplicação
  • Resumo e próximos passos
  • Perguntas frequentes

Share

Saiba como criar uma aplicação Web full-stack utilizando Django para o backend e React para o frontend, com orientação passo a passo.

Como criar uma aplicação simples com Django e React

Pretende criar uma aplicação Web com um backend sólido e um frontend dinâmico? Emparelhar Django, uma estrutura Python, com React, uma biblioteca JavaScript, é uma ótima maneira de conseguir isso. O Django lida com tarefas de back-end, como gerenciamento de banco de dados e criação de API, enquanto o React cria uma interface de usuário responsiva e interativa.

Principais etapas:

  1. Configure seu ambiente:- Instale Python 3.x para Django e Node.js para React.

    • Use ambientes virtuais para gerenciar as dependências do Python.
    • Confirme as instalações com python --version, node --version, e npm --version.
  2. Organize seu projeto:- Crie pastas separadas para o backend Django e o frontend React.

    • Use django-admin startproject para configuração do backend e npx create-react-app para inicialização do frontend.
  3. Construa o backend:- Crie aplicativos Django, defina modelos e gere migrações.

    • Use o Django REST Framework para construir endpoints de API.
    • Configure o django-cors-headers para permitir a comunicação entre o frontend e o backend.
  4. Desenvolver o front-end:- Use componentes React para gerenciar tarefas e interações do usuário.

    • Instale o Axios para solicitações de API e integre-o aos pontos de extremidade do Django.
    • Estilize o aplicativo com CSS para obter uma interface de usuário limpa.
  5. Conectar e testar:- Execute o Django em localhost:8000 e o React em localhost:3000.

    • Teste os endpoints da API com ferramentas como Postman ou diretamente no navegador.
    • Garanta configurações CORS adequadas para uma comunicação tranquila.

Esta configuração permite-lhe construir eficientemente uma aplicação de pilha completa com uma separação clara entre backend e frontend. Siga estes passos para criar uma aplicação Web escalável e interactiva.

ProjetoDjango e React para principiantes - Construir uma aplicação FullStack Notes

Django

Requisitos de configuração e instalação

Antes de começar a construir a sua aplicação Django e React, é crucial configurar o seu ambiente de desenvolvimento com as ferramentas e dependências necessárias. Essa base irá ajudá-lo a criar, integrar e testar seus componentes Django e React sem problemas à medida que você prossegue.

Requisitos de sistema e ferramentas

Para começar, sua máquina de desenvolvimento precisará de Python 3.x para Django e Node.js para React. Especificamente, o Django 5.0 requer Python 3.x, enquanto o React funciona com Node.js versão 12 ou superior.

Instalando o Python: Pode descarregar o Python diretamente do seu site oficial ou utilizar o gestor de pacotes do seu sistema. Para os utilizadores do macOS, o Homebrew simplifica o processo com o brew install python. Os utilizadores de Windows devem obter o instalador a partir de python.org, enquanto os utilizadores de Linux podem instalá-lo com comandos como apt install python3 no Ubuntu ou comandos semelhantes para outras distribuições.

Configurando o Node.js e o npm: O Node.js vem com o npm (Node Package Manager). Necessitará da versão 6 ou superior do npm, sendo a versão 7.5.4 uma escolha fiável. Faça o download do Node.js em nodejs.org, que incluirá automaticamente o npm.

Ambientes virtuais Python: Usar ambientes virtuais é fundamental para gerenciar dependências específicas do projeto sem conflitos. Você pode usar o módulo venv embutido ou ferramentas como pipenv ou virtualenvwrapper para obter mais recursos. Se estiver no Windows, o pacote virtualenvwrapper-win fornece uma funcionalidade semelhante.

Para confirmar as suas instalações, execute estes comandos no seu terminal:

python --version node --version npm --version

Criando a estrutura do projeto

Uma estrutura de projeto bem organizada é essencial para manter seu código de backend e frontend separados e gerenciáveis. Comece criando um diretório principal para o seu projeto:

mkdir django-react-app cd django-react-app

Dentro deste diretório, crie duas pastas: uma para seu backend Django e outra para seu frontend React. Essa separação permite que você mantenha e implante cada parte independentemente.

Configure seu ambiente virtual Python dentro do diretório do projeto:

python -m venv venv

Ative o ambiente virtual:

  • No macOS/Linux: source venv/bin/activate
  • No Windows: venv\Scripts\activate

Esta etapa garante que todas as dependências Python para o seu projeto sejam isoladas.

Instalando os pacotes necessários

Com seu ambiente pronto, é hora de instalar os pacotes necessários tanto para o Django quanto para o React.

Pacotes de Backend do Django: Enquanto seu ambiente virtual estiver ativo, instale o Django e suas bibliotecas de suporte usando pip:

pip install django pip install djangoorestframework pip install django-cors-headers
  • O Django lida com a lógica do lado do servidor, gerenciamento de banco de dados e roteamento de URL.
  • O Django REST Framework simplifica o processo de construção de APIs RESTful, facilitando a criação de endpoints para seu frontend React.
  • Django-cors-headers habilita o Cross-Origin Resource Sharing (CORS), que é essencial para a comunicação entre seu frontend React (rodando na porta 3000) e o backend Django (rodando na porta 8000).

Configuração do front-end React: Para configurar seu ambiente React, use a ferramenta create-react-app. Este comando inicializa um projeto React e instala todas as dependências necessárias:

npx create-react-app frontend

Isso criará um novo projeto React em um diretório frontend, completo com pacotes essenciais, ferramentas de desenvolvimento e scripts de compilação.

Pacote de front-end adicional: Após configurar seu projeto React, navegue até o diretório frontend e instale o Axios, uma biblioteca para fazer requisições HTTP para sua API Django:

cd frontend npm install axios

Neste ponto, seu ambiente de desenvolvimento está totalmente equipado com Python 3.x, Django, Node.js, React e todas as ferramentas necessárias. O ambiente virtual Python garante que suas dependências de back-end estejam isoladas, enquanto o npm lida com seus pacotes JavaScript separadamente. Agora você está pronto para começar a criar seu aplicativo full-stack!

Construir o backend com Django

Configure um back-end Django com modelos de banco de dados, pontos de extremidade de API e integração para um front-end React.

Criando um projeto e um aplicativo Django

Comece criando um projeto Django, que inclui definições, configurações de banco de dados e opções específicas do aplicativo. Dentro desse projeto, você criará um aplicativo Django - um pacote Python projetado para tarefas específicas, como gerenciar dados ou conteúdo do usuário.

Navegue até o diretório raiz do seu projeto (onde seu ambiente virtual está configurado) e crie o projeto Django:

django-admin startproject backend .

Este comando gera arquivos de projeto diretamente no diretório atual, evitando uma pasta extra. Você vai notar novos arquivos como manage.py (para rodar comandos Django) e um diretório backend contendo arquivos como settings.py, urls.py, asgi.py, e wsgi.py.

Em seguida, crie um aplicativo para lidar com uma funcionalidade específica. Por exemplo, um sistema de gestão de tarefas:

python manage.py startapp tasks

Isto cria um diretório de tarefas com ficheiros essenciais como models.py, views.py, admin.py e uma pasta de migrações. Certifique-se de que evita conflitos de nomes com nomes incorporados como "django" ou "test".

Registre o aplicativo nas configurações do seu projeto, adicionando-o à lista INSTALLED_APPS em backend/settings.py:

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'corsheaders', 'tasks', # Registe a sua app ]

Configurando Models e Serializers

Defina sua estrutura de dados com os modelos do Django. Por exemplo, um simples modelo Task para a aplicação de gestão de tarefas pode ser adicionado em tasks/models.py:

from django.db import models class Task(models.Model): title = models.CharField(max_length=200) description = models.TextField(blank=True) completed = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta: ordering = ['-created_at'] def __str__(self): return self.title

Este modelo inclui campos como CharField para texto curto, TextField para conteúdo mais longo, BooleanField para valores true/false e DateTimeField para carimbos de data/hora. A classe Meta especifica opções como a ordenação predefinida.

Aplique o modelo à sua base de dados executando migrações:

python manage.py makemigrations tasks python manage.py migrate

Para converter os dados do modelo para JSON, use os serializadores do Django REST Framework. Em tasks/serializers.py, defina um serializador para o modelo Task:

from rest_framework import serializers from .models import Task class TaskSerializer(serializers.ModelSerializer): class Meta: model = Task fields = ['id', 'title', 'description', 'completed', 'created_at', 'updated_at'] read_only_fields = ['created_at', 'updated_at']

O ModelSerializer gera automaticamente campos e métodos com base no modelo. A listagem explícita de campos garante que você não exponha involuntariamente dados confidenciais.

Construindo Endpoints de API

O Django REST Framework simplifica a criação de APIs. Para operações CRUD padrão, use ViewSets com roteadores para uma estrutura limpa e RESTful.

Em tasks/views.py, crie visualizações de API:

from rest_framework import viewsets from rest_framework.permissions import AllowAny from .models import Task from .serializers import TaskSerializer class TaskViewSet(viewsets.ModelViewSet): queryset = Task.objects.all() serializer_class = TaskSerializer permission_classes = [AllowAny] # Apenas para desenvolvimento

O ModelViewSet lida automaticamente com a listagem, criação, recuperação, atualização e eliminação de tarefas.

Configure o roteamento de URL em tasks/urls.py:

from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import TaskViewSet router = DefaultRouter() router.register(r'tasks', TaskViewSet) urlpatterns = [ path('api/', include(router.urls)), ]

Incluir estes URLs no ficheiro principal backend/urls.py:

from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('tasks.urls')), ]

Configurando cabeçalhos CORS

Para permitir que seu frontend React (rodando na porta 3000) se comunique com o backend Django (na porta 8000), configure o Cross-Origin Resource Sharing (CORS). Sem isso, os navegadores bloqueiam requisições cross-origin por razões de segurança.

Atualize backend/settings.py para incluir a configuração CORS:

MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', # Adicione isso no topo 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] # Configurações CORS para desenvolvimento CORS_ALLOWED_ORIGINS = [ "http://localhost:3000", # Servidor de desenvolvimento React "http://127.0.0.1:3000", ] CORS_ALLOW_CREDENTIALS = True

Para testes rápidos, você pode usar CORS_ALLOW_ALL_ORIGINS = True, mas especificar as origens permitidas é mais seguro.

Testando pontos de extremidade da API

Antes de integrar o front-end React, teste os pontos de extremidade da API para garantir que eles funcionem conforme o esperado. Inicie o servidor de desenvolvimento do Django:

python manage.py runserver

Acesse a API em http://127.0.0.1:8000/api/tasks/. Use a API navegável para testar operações como solicitações GET e POST.

Alternativamente, teste com cURL ou Postman:

# Teste o pedido GET para listar tarefas curl -X GET http://127.0.0.1:8000/api/tasks/ # Teste o pedido POST para criar uma tarefa curl -X POST http://127.0.0.1:8000/api/tasks/ \ -H "Content-Type: application/json" \ -d '{"title": "Tarefa de teste", "descrição": "Esta é uma tarefa de teste"}'

Para testes automatizados, adicione casos de teste em tasks/tests.py:

from rest_framework.test import APITestCase from rest_framework import status from .models import Task class TaskAPITestCase(APITestCase): def test_create_task(self): # Adicione suas asserções e lógica de teste aqui pass

Com o back-end no lugar, você está pronto para conectá-lo ao front-end do React.

Criar o front-end com React

Para criar uma interface envolvente para seu backend Django, você usará o React para gerenciar as interações do usuário - tudo, desde a visualização de tarefas até a adição de novas.

Configurando um projeto React

Comece configurando seu front-end React usando Criar aplicativo React. Navegue até o diretório raiz do seu projeto (onde seu backend Django reside) e execute:

npx create-react-app frontend cd frontend

Este comando configura uma aplicação React com ficheiros essenciais como package.json, src/App.js, e public/index.html. Ele também inclui ferramentas como webpack para empacotamento, Babel para compilação de JavaScript e um servidor de desenvolvimento para testes.

Em seguida, instale o Axios para lidar com solicitações HTTP para sua API Django:

npm install axios

O Axios torna as chamadas de API mais simples gerenciando a análise de JSON e oferecendo um melhor tratamento de erros do que a função embutida fetch(). Ele também suporta recursos como interceptores de requisição e resposta.

Sua estrutura de pastas agora deve ter a seguinte aparência:

project-root/ ├── backend/ │ ├── manage.py │ ├── backend/ │ └── tasks/ └── frontend/ ├── package.json ├── public/ └── src/

Para confirmar que tudo está funcionando, inicie o servidor de desenvolvimento React:

npm start

Isso inicia o aplicativo em http://localhost:3000, exibindo a página de boas-vindas padrão do React. Mantenha este servidor em execução durante o desenvolvimento - ele é recarregado automaticamente quando você faz alterações.

Criando componentes React

Vamos criar um componente TaskList para exibir tarefas obtidas da sua API Django. Adicione o seguinte ao arquivo src/components/TaskList.js:

import React from 'react'; const TaskList = ({ tasks, onToggleComplete, onDeleteTask }) => { return ( <div className="task-list"> <h2>Suas Tarefas</h2> {tasks.length === 0 ? ( <p>Não há tarefas disponíveis. Crie a sua primeira tarefa!</p> ) : ( <ul> {tasks.map((task) => ( <li key={task.id} className={`task-item ${task.completed ? 'completed' : ''}`}> <div className="task-content"> <h3>{task.title}</h3> <p>{task.description}</p> <small>Created: {new Date(task.created_at).toLocaleDateString()}</small> </div> <div className="task-actions"> <button onClick={() => onToggleComplete(task.id, !task.completed)} className={task.completed ? 'btn-undo' : 'btn-complete'} > {tarefa.concluída ? 'Desfazer' : 'Concluir'} </button> <button onClick={() => onDeleteTask(task.id)} className="btn-delete" > Delete </button> </div> </li> ))} </ul> )} </div> ); }; export default TaskList;

Em seguida, crie um componente TaskForm para adicionar novas tarefas. Adicione isso a src/components/TaskForm.js:

import React, { useState } from 'react'; const TaskForm = ({ onAddTask }) => { const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); if (!title.trim()) return; setIsSubmitting(true); try { await onAddTask({ title: title.trim(), description: description.trim() }); setTitle(''); setDescription(''); } catch (error) { console.error('Erro ao adicionar tarefa:', error); } finally { setIsSubmitting(false); } }; return ( <form onSubmit={handleSubmit} className="task-form"> <h2>Adicionar nova tarefa</h2> <div className="form-group"> <input type="text" placeholder="Título da tarefa" value={title} onChange={(e) => setTitle(e.target.value)} disabled={isSubmitting} required /> </div> <div className="form-group"> <textarea placeholder="Descrição da tarefa (opcional)" value={description} onChange={(e) => setDescription(e.target.value)} disabled={isSubmitting} rows="3" /> </div> <button type="submit" disabled={isSubmitting || !title.trim()}> {isSubmitting ? 'Adicionando...' : 'Adicionar Tarefa'} </button> </form> ); }; export default TaskForm;

Para obter um estilo básico, crie um ficheiro src/App.css e adicione:

.task-list { margin: 20px 0; } .task-item { display: flex; justify-content: space-between; align-items: center; padding: 15px; border: 1px solid #ddd; margin-bottom: 10px; border-radius: 5px; } .task-item.completed { background-color: #f0f8f0; decoração de texto: linear; opacidade: 0,7; } .task-form { background: #f9f9f9; padding: 20px; border-radius: 5px; margin-bottom: 20px; } .form-group { margin-bottom: 15px; } .form-group input, .form-group textarea { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 3px; } .btn-complete, .btn-undo, .btn-delete { margin-left: 10px; padding: 5px 10px; border: none; border-radius: 3px; cursor: pointer; } .btn-complete { background: #28a745; cor: branco; } .btn-undo { background: #ffc107; cor: preto; } .btn-delete { background: #dc3545; cor: branco; }

Gerenciando o Estado e a Integração da API

Ganchos React como useState e useEffect facilitam o gerenciamento do estado e a interação com seu backend Django. Para centralizar as chamadas de API, crie um arquivo de serviço src/services/api.js:

import axios from 'axios'; const API_BASE_URL = 'http://127.0.0.1:8000/api'; const api = axios.create({ baseURL: API_BASE_URL, headers: { 'Content-Type': 'application/json', }, }); export const taskAPI = { getTasks: () => api.get('/tasks/'), createTask: (taskData) => api.post('/tasks/', taskData), updateTask: (taskId, taskData) => api.put(`/tasks/${taskId}/`, taskData), deleteTask: (taskId) => api.delete(`/tasks/${taskId}/`), }; export default api;

Por fim, integre tudo em src/App.js:

import React, { useState, useEffect } from 'react'; import TaskList from './components/TaskList'; import TaskForm from './components/TaskForm'; import { taskAPI } from './services/api'; import './App.css'; function App() { const [tasks, setTasks] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetchTasks(); }, []); const fetchTasks = async () => { try { setLoading(true); const response = await taskAPI.getTasks(); setTasks(response.data); } catch (err) { setError(err); } finally { setLoading(false); } }; // Métodos adicionais para adicionar, atualizar e excluir tarefas iriam aqui }

Com essa configuração, seu front-end React está pronto para manipular tarefas interativamente enquanto se comunica perfeitamente com seu back-end Django.

background image
O seu servidor está a travar o seu crescimento?

Cansado de implementações lentas ou limites de largura de banda? A FDC Servers oferece potência dedicada instantânea, alcance global e planos flexíveis criados para qualquer escala. Pronto para atualizar?

Desbloquear o desempenho agora

Ligar o Django e o React

Agora que seu backend e frontend estão funcionando, o próximo passo é garantir uma comunicação suave entre eles. Isso envolve a configuração de endpoints de API, gerenciamento de solicitações e resolução de quaisquer problemas de integração.

Configurando URLs de API no React

Seu aplicativo React precisa saber onde localizar os endpoints da API do Django. Para conseguir isso, atualize o arquivo src/services/api.js com configurações específicas do ambiente:

import axios from 'axios'; // Determinar a URL base da API com base no ambiente const getApiBaseUrl = () => { if (process.env.NODE_ENV === 'production') { return process.env.REACT_APP_API_URL || 'https://your-production-domain.com/api'; } return 'http://127.0.0.1:8000/api'; }; const API_BASE_URL = getApiBaseUrl(); const api = axios.create({ baseURL: API_BASE_URL, headers: { 'Content-Type': 'application/json', }, timeout: 10000, // 10 second timeout }); export const taskAPI = { getTasks: () => api.get('/tasks/'), createTask: (taskData) => api.post('/tasks/', taskData), updateTask: (taskId, taskData) => api.put(`/tasks/${taskId}/`, taskData), deleteTask: (taskId) => api.delete(`/tasks/${taskId}/`), }; export default api;

Para produção, adicione um arquivo .env à raiz do seu projeto React com o seguinte conteúdo:

REACT_APP_API_URL=https://your-production-domain.com/api

Essa configuração garante que seu aplicativo React possa interagir perfeitamente com seu back-end Django, esteja você em um ambiente de desenvolvimento local ou implantando em produção. Com os pontos de extremidade da API configurados, você está pronto para buscar e manipular os dados do backend.

Buscando dados do backend

Uma vez que a configuração da API esteja definida, você pode executar operações CRUD para gerenciar dados entre o React e o Django. Atualize src/App.js para lidar com essas operações:

import React, { useState, useEffect } from 'react'; import TaskList from './components/TaskList'; import TaskForm from './components/TaskForm'; import { taskAPI } from './services/api'; import './App.css'; function App() { const [tasks, setTasks] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { fetchTasks(); }, []); const fetchTasks = async () => { try { setLoading(true); setError(null); const response = await taskAPI.getTasks(); setTasks(response.data); } catch (err) { setError('Falha ao ir buscar tarefas. Verifique a sua ligação.'); console.error('Erro ao ir buscar tarefas:', err); } finally { setLoading(false); } } }; const handleAddTask = async (taskData) => { try { const response = await taskAPI.createTask(taskData); setTasks(prevTasks => [...prevTasks, response.data]); } catch (err) { console.error('Erro ao adicionar tarefa:', err); throw err; // Re-jogar para deixar o TaskForm tratar do erro } }; const handleToggleComplete = async (taskId, completed) => { try { const taskToUpdate = tasks.find(task => task.id === taskId); const updatedTaskData = { ...taskToUpdate, completed }; const response = await taskAPI.updateTask(taskId, updatedTaskData); setTasks(prevTasks => prevTasks.map(task => task.id === taskId ? response.data : task ) ); } catch (err) { console.error('Erro ao atualizar tarefa:', err); } }; const handleDeleteTask = async (taskId) => { if (!window.confirm('Tem a certeza que pretende eliminar esta tarefa?')) { return; } try { await taskAPI.deleteTask(taskId); setTasks(prevTasks => prevTasks.filter(task => task.id !== taskId)); } catch (err) { console.error('Erro ao excluir tarefa:', err); } } }; if (loading) { return <div className="loading">Carregando tarefas...</div>; } return ( <div className="App"> <header className="App-header"> <h1>Task Manager</h1> </header> <main className="container"> {error && <div className="error-message">{error}</div>} <TaskForm onAddTask={handleAddTask} /> <TaskList tasks={tasks} onToggleComplete={handleToggleComplete} onDeleteTask={handleDeleteTask} /> </main> </div> ); } export default App;

Este código trata da criação de tarefas, actualizações, eliminações e gestão de erros. A interface do usuário é atualizada imediatamente para uma experiência de usuário tranquila, e os erros são gerenciados graciosamente revertendo as alterações ou mostrando as mensagens apropriadas.

Testando e depurando a conexão

Um dos obstáculos mais comuns ao ligar Django e React é lidar com erros CORS (Cross-Origin Resource Sharing). Eles surgem porque os navegadores bloqueiam requisições entre diferentes origens por razões de segurança. Durante o desenvolvimento, o React normalmente é executado no localhost:3000, enquanto o Django opera no localhost:8000, criando um cenário de origem cruzada.

Para resolver problemas de CORS, certifique-se de ter configurado os cabeçalhos CORS nas configurações do Django, conforme descrito na seção "Configurando cabeçalhos CORS". Após fazer as mudanças, reinicie seu servidor Django para aplicá-las.

Aqui estão alguns erros comuns de requisição de API e suas soluções:

  • HTTP 400 (Bad Request): Isso geralmente significa que alguns dados necessários estão faltando ou malformados no payload da requisição. Por exemplo, em novembro de 2023, FintanMi encontrou um erro 400 ao criar uma comunidade em um projeto Django REST Framework e React porque o campo proprietário estava ausente na solicitação. Sempre verifique novamente se o seu frontend envia todos os campos obrigatórios esperados pelos modelos Django.
  • HTTP 405 (Método não permitido): Isso ocorre quando o endpoint da API não suporta o método HTTP em uso. Por exemplo, FintanMi reportou um erro 405 ao tentar deletar um post, que foi resolvido atualizando a view do Django de generics.RetrieveUpdateAPIView para generics.RetrieveUpdateDestroyAPIView para incluir suporte a requisições DELETE.

Executar e testar a aplicação

Com o back-end do Django e o front-end do React conectados, é hora de iniciar os dois servidores de desenvolvimento e testar o aplicativo. Isso envolve a execução de dois servidores simultaneamente e a garantia de que tudo funcione em conjunto sem problemas.

Iniciando os servidores de desenvolvimento

Para executar seu aplicativo Django-React, você precisará de duas janelas de terminal - uma para cada servidor. Essa configuração permite que o backend e o frontend operem independentemente enquanto se comunicam através de chamadas de API.

Iniciando o servidor de back-end do Django:

  1. Abra a primeira janela de terminal e navegue até o diretório raiz do seu projeto Django.

  2. Ative seu ambiente virtual Python:

    source venv/bin/activate
    
  3. Inicie o servidor de desenvolvimento Django:

    python manage.py runserver
    

    O servidor estará disponível em http://127.0.0.1:8000/.

Iniciando o servidor de front-end React:

  1. Abra uma segunda janela de terminal e navegue até o diretório do seu projeto React:

    cd frontend
    
  2. Inicie o servidor de desenvolvimento do React:

    npm start
    

    Isso abrirá automaticamente uma janela do navegador em http://localhost:3000/.

Quando os dois servidores estiverem em execução, você poderá começar a testar a funcionalidade do seu aplicativo.

Testando a funcionalidade completa do aplicativo

Com os servidores em funcionamento e os pontos de extremidade CORS e API configurados corretamente, é hora de validar o fluxo de dados entre o front-end e o back-end.

Verificação da API do backend:

  • Teste seus endpoints de API do Django diretamente visitando:

    http://localhost:8000/api/tasks
    

    Isso deve exibir a interface da API navegável do Django REST Framework, onde você pode executar operações de CREATE e READ.

  • Acesse a interface de administração do Django em:

    http://localhost:8000/admin
    

    Faça login com suas credenciais de superusuário para criar, editar ou excluir tarefas. Você também pode testar as operações UPDATE e DELETE visitando:

    http://localhost:8000/api/tasks/{id}
    

Teste de integração front-end-backend:

  • Abra seu aplicativo React em http://localhost:3000 e confirme que ele é carregado corretamente, exibindo tarefas do back-end do Django.
  • Teste cada operação CRUD por meio da interface React:- Adicione uma nova tarefa e verifique se ela aparece tanto na interface do usuário do React quanto no back-end.
    • Editar uma tarefa existente e garantir que as alterações sejam salvas.
    • Excluir uma tarefa e verificar se ela foi removida do front-end e do banco de dados.

Se o seu aplicativo incluir filtros ou outros recursos, teste-os completamente para confirmar que as tarefas são exibidas conforme o esperado.

Correção de problemas comuns

Se encontrar algum problema durante o teste, aqui estão algumas correcções comuns para tentar.

Erros de conexão da API:

  • Certifique-se de que ambos os servidores estejam sendo executados em suas respectivas portas: Django em http://localhost:8000 e React em http://localhost:3000.

  • Use as ferramentas de desenvolvedor do navegador (guia rede) para identificar códigos de status HTTP como 404 ou 500.

  • Verifique a configuração do proxy no arquivo package.json do seu projeto React:

    "proxy": "http://localhost:8000"
    

    Se você fizer alterações, reinicie o servidor React.

Problemas de inicialização do servidor:

  • Se o servidor Django não iniciar, verifique se há migrações faltando:

    python manage.py makemigrations python manage.py migrate
    
  • Para problemas com o servidor React, tente reinstalar as dependências:

    npm install
    

Problemas de fluxo de dados:

  • Use as ferramentas de desenvolvedor do navegador para inspecionar solicitações de rede e erros de console.
  • Adicione instruções de depuração, como console.log() no React ou instruções de impressão em exibições do Django, para rastrear o fluxo de dados.
  • Verifique novamente se as URLs da API no seu aplicativo React correspondem exatamente aos padrões de URL do Django, incluindo barras finais (por exemplo, /api/tasks/).

Resumo e próximos passos

Você criou um aplicativo Web que combina Django e React, dando-lhe uma sólida introdução ao desenvolvimento full-stack. Este projeto destaca conceitos essenciais como separar o back-end do front-end, executar operações CRUD e gerenciar solicitações de origem cruzada usando as configurações CORS. Ao longo do caminho, você trabalhou com o Django REST Framework para criar APIs e usou hooks do React para gerenciamento de estado - habilidades que permitem uma integração suave entre essas duas ferramentas poderosas.

Levando seu aplicativo para o próximo nível

Há muito espaço para expandir a funcionalidade da sua aplicação. Por exemplo, você pode adicionar a autenticação JWT usando o Django REST Framework para proteger os dados do usuário e o acesso à API. Isto permitir-lhe-ia oferecer caraterísticas específicas do utilizador e experiências personalizadas.

Se seu aplicativo precisa de atualizações em tempo real, considere usar Django Channels para habilitar o suporte WebSocket. Isso é perfeito para recursos como painéis de controle ao vivo, sistemas de bate-papo ou notificações, transformando seu aplicativo em uma plataforma mais dinâmica e interativa.

À medida que seu aplicativo cresce, a visualização avançada de dados se torna importante. Ao combinar os recursos de renderização do React com a busca eficiente de dados de back-end, você poderá manipular e exibir conjuntos de dados complexos com eficiência.

Preparando-se para a produção

Ao preparar seu aplicativo para produção, concentre-se na implantação, na segurança e no desempenho. Embora a configuração atual seja ótima para o desenvolvimento local, os ambientes de produção exigem etapas extras. Estas incluem a configuração de variáveis de ambiente, a otimização da sua base de dados e a implementação de fortes mecanismos de tratamento de erros.

Essas melhorias se baseiam nas habilidades que você já desenvolveu - como design de API, arquitetura baseada em componentes e integração de pilha completa. Ao dominar estas técnicas avançadas, estará bem equipado para lidar com projectos de nível empresarial e continuar a crescer como programador Web.

Perguntas frequentes

Quais são as vantagens de usar Django para o backend e React para o frontend na construção de uma aplicação web?

Usar Django para o backend e React para o frontend cria uma forte mistura para o desenvolvimento de aplicações web modernas. O Django fornece uma estrutura sólida repleta de ferramentas que simplificam o desenvolvimento de back-end, enquanto o React brilha na construção de interfaces de utilizador dinâmicas e interactivas.

Esta combinação promove uma separação limpa de responsabilidades, o que ajuda a manter a base de código organizada e mais fácil de expandir ao longo do tempo. A estrutura baseada em componentes do React incentiva a reutilização de elementos da interface do usuário, e o framework REST do Django simplifica o processo de criação de APIs, garantindo uma comunicação tranquila entre o front-end e o back-end. Juntos, eles oferecem uma abordagem rápida, eficiente e centrada no utilizador para o desenvolvimento de aplicações.

Como faço para resolver problemas de CORS ao conectar um front-end React a um back-end Django?

Para resolver problemas de CORS entre um frontend React e um backend Django, o pacote django-cors-headers é uma solução útil. Primeiro, instale-o usando pip. Então, no seu arquivo settings.py, adicione 'corsheaders' à lista INSTALLED_APPS. Depois disso, inclua 'corsheaders.middleware.CorsMiddleware' no topo da lista MIDDLEWARE para garantir a ordem correta de execução do middleware.

Durante o desenvolvimento, você pode simplificar as coisas definindo CORS_ORIGIN_ALLOW_ALL = True no seu settings.py. Isso permite solicitações de qualquer origem. No entanto, em um ambiente de produção, é muito mais seguro definir domínios confiáveis específicos usando a configuração CORS_ALLOWED_ORIGINS. Essa abordagem ajuda a manter uma segurança mais rígida.

Com essa configuração, seu aplicativo React pode interagir suavemente com suas APIs Django enquanto permanece em conformidade com os requisitos CORS.

Como posso preparar meu aplicativo Django e React para implantação em produção?

Para preparar seu aplicativo Django e React para produção, comece ajustando suas configurações do Django para uma configuração segura. Isso inclui definir DEBUG como False e especificar o ALLOWED_HOSTS para controlar quais domínios podem acessar seu aplicativo. Essas alterações são essenciais para proteger seu aplicativo em um ambiente ativo.

Em seguida, selecione uma plataforma de hospedagem confiável para seu backend Django e arquivos estáticos. Certifique-se de que sua infraestrutura foi criada para lidar com tráfego e demandas de nível de produção. Para o front-end do React, use as ferramentas de compilação apropriadas para gerar uma compilação de produção otimizada.

Quando seu aplicativo React estiver pronto, configure um servidor Web como o Nginx para atender ao front-end do React e ao back-end do Django. A configuração adequada do servidor garante que seu aplicativo seja executado com eficiência e forneça uma experiência perfeita para os usuários.

Antes de entrar em funcionamento, teste exaustivamente a sua aplicação no ambiente de produção. Este passo ajuda a identificar e resolver quaisquer problemas, garantindo que a sua aplicação funciona de forma fiável quando é lançada.

Blogue

Em destaque esta semana

Mais artigos
Monitorizar o seu servidor dedicado ou VPS, quais são as opções em 2025?

Monitorizar o seu servidor dedicado ou VPS, quais são as opções em 2025?

Explore as melhores ferramentas de monitorização para servidores dedicados e VPS em 2025, com foco em IA, automação e análise em tempo real.

12 min de leitura - 28 de novembro de 2025

Como escolher o melhor servidor GPU para cargas de trabalho de IA

10 min de leitura - 15 de outubro de 2025

Mais artigos