🔹 Conteúdo teórico apresentado:
Cap. 1 – Aspectos Introdutórios
🧪 Atividades práticas realizadas:
- Criação da conta no GitHub
- Criação e clonagem do repositório
web_mobile - Introdução ao VSCode e primeiros comandos Git
- Criação dos primeiros arquivos:
aula-1.html
js/funcoes.js
css/styles.css
🔹 Conteúdo teórico apresentado:
Cap. 2 – Frameworks
🧪 Atividades práticas realizadas:
- Criação do arquivo
aula-2.html - Explicação sobre
actionemethodem formulários - Estudo dos principais verbos HTTP:
POST → Enviar dados
GET → Receber dados
PUT → Atualizar dados
DELETE → Excluir dados
🔹 Conteúdo teórico apresentado:
🧪 Atividades práticas realizadas:
- Criação do ambiente virtual com
virtualenv - Ativação e desativação:
source virtual/bin/activate
deactivate- Uso do
.gitignorepara ignorar arquivos no Git:
cat .gitignore🔹 Conteúdo teórico apresentado:
🧪 Atividades práticas realizadas:
- Instalação do Django no ambiente virtual:
pip install django
django-admin --version- Início do projeto Django com:
django-admin startproject nome_projeto- Discussão sobre a arquitetura MTV (Model – Template – View)
🔹 Conteúdo teórico apresentado:
Cap. 7 – Desenvolvimento com Django
🧪 Atividades práticas realizadas:
- Criação de projeto e app Django
- Comando para rodar o servidor local
- Adicionar o App no
settings.py - Diferença entre projeto e app
🔹 Conteúdo teórico apresentado:
Cap. 8 – Migrações, Banco de Dados, CRUD e Class-Based Views
🧪 Atividades práticas realizadas:
- Rodar as migrações no banco de dados
- Revisão dos métodos HTTP e códigos de status
- Introdução às Class-Based Views e Mixins
- Inserção e consulta de dados no Django Shell
🔹 Conteúdo teórico apresentado:
🧪 Atividades práticas realizadas:
- Estruturação de templates com
base.htmle blocos{% block %} - Criação do
forms.pye formulário com ModelForm - Implementação das views com
CreateView - Adição das rotas no
urls.py - Criação do template
novo.html - Adição de imagens aos veículos
🔹 Conteúdo teórico apresentado:
Cap. 11 – Controle de Acesso e Funcionalidades Avançadas
🧪 Atividades práticas realizadas:
- Implementação da verificação de login (
LoginRequiredMixin) - Definição da URL de login no
settings.py - Criação da view
EditarVeiculoscomUpdateView - Rota para editar veículos adicionada ao
urls.py - Criação de novo app
anuncio - Adição de
ForeignKeypara relacionamento entre modelos - Melhoria no controle de acesso e nas funcionalidades CRUD
🔹 Conteúdo teórico apresentado:
Cap. 12 – Testes
🧪 Atividades práticas realizadas:
-
Introdução ao conceito de TDD (Test-Driven Development):
🔸 Técnica que visa otimizar o desenvolvimento de software, reduzindo falhas no desenvolvimento e na entrega.
🔸 Processo cíclico:- Escreve-se um teste automatizado para uma nova funcionalidade.
- Desenvolve-se o código mínimo necessário para que o teste passe.
- Refatora-se o código, mantendo os testes passando.
-
Tipos de Testes:
-
✅ Teste de Unidade (Unitário) –
⚠️ Tema de prova!
Verifica métodos, funções ou componentes isolados.Exemplo:
function soma(a, b) { return a + b; } var resultado = soma(1, 2); expect(resultado).to.equal(3);
-
🔸 Teste de Integração – Testa a interação entre módulos.
-
🔸 Teste de Carga – Verifica desempenho sob alta demanda.
-
🔸 Teste de Aceitação – Valida se o sistema atende aos requisitos.
-
🔸 Teste de Segurança – Avalia vulnerabilidades no sistema.
-
-
Criação de Testes no Django:
Arquivo:veiculo/tests.py
from django.test import TestCase
from django.contrib.auth.models import User
from datetime import datetime
from veiculo.models import Veiculo
class TesteModelVeiculo(TestCase):
def setUp(self):
self.instancia = Veiculo(
marca=1,
modelo='ABCDE',
ano=datetime.now().year,
cor=2,
combustivel=3,
)
def test_is_new(self):
self.assertTrue(self.instancia.veiculo_novo)
self.instancia.ano = datetime.now().year - 5
self.assertFalse(self.instancia.veiculo_novo)- Executando os testes no Django:
python manage.py test🔹 Conteúdo teórico apresentado:
🧪 Atividades práticas realizadas:
- Instalação do Django REST Framework e CORS Headers:
pip install djangorestframework
pip install django-cors-headers- Configurações em
settings.py(ouconfig.py):
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
...,
'rest_framework',
'rest_framework.authtoken',
'corsheaders',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...,
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
],
}
CORS_ORIGIN_ALLOW_ALL = True- Criar o serializer para o modelo Veículo (
veiculo/serializer.py):
from veiculo.models import Veiculo
from rest_framework import serializers
class SerializadorVeiculo(serializers.ModelSerializer):
class Meta:
model = Veiculo
exclude = []- Criar a API view para listar veículos (
veiculo/views.py):
from rest_framework.generics import ListAPIView
from veiculo.serializers import SerializadorVeiculo
from rest_framework.authentication import TokenAuthentication
from rest_framework import permissions
class APIListarVeiculos(ListAPIView):
serializer_class = SerializadorVeiculo
authentication_classes = [TokenAuthentication]
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
return Veiculo.objects.all()- Atualizar rotas em
veiculo/urls.py:
from django.urls import path
from veiculo.views import *
urlpatterns = [
path('api/', APIListarVeiculos.as_view(), name='api-listar-veiculos'),
path('foto/<str:arquivo>', FotoVeiculo.as_view(), name='foto-veiculo'),
]- Teste da API (usar o token do usuário autenticado):
curl http://127.0.0.1:8000/veiculo/api/ -H 'Authorization: Token SEU_TOKEN_AQUI'- Verificação de funcionamento:
./manage.py check