Curso de Django Web Framework e Django Rest Framework (DRF)
- Descrição
- Currículo
- FAQ
- Revisões
Curso de Django Web Framework com Python, HTML e CSS: Se você aprendeu Python, provavelmente percebeu que é necessário ter alguma especialização para conseguir fazer algo útil com a linguagem. Algo que está SEMPRE em alta no mercado desde o início da Web é o desenvolvimento Web, tanto em back-end quanto front-end. O Python oferece vários frameworks, bibliotecas e módulos para trabalhos com web. O mais famoso deles, sem sobra de dúvidas, é o Django Web Framework.
Com o Django é possível criar um site completo ou uma API em minutos. Ele já vem com tudo o que é necessário para facilitar a vida do desenvolvedor, como ORM para mapeamento de código com bases de dados relacionais SQL, sistema de templates para injetar dados na página que será exibida ao usuário, sistema de views com funções e classes FBV e CBV, sistema de autenticação de usuários, área administrativa, e muito mais. Apenas com o Django é possível criar, testar, subir e manter um site sem muito esforço.
Neste curso vamos entender como o Django Web Framework funciona nos seus mínimos detalhes. Também vamos ver outros assuntos que são de extrema importância e que envolvem o desenvolvimento web, como testes unitários, de integração e funcionais, TDD, HTML e CSS, comandos Unix e Linux para servidores web, SQL com MySQL, o protocolo HTTP e mais.
Veja o conteúdo de cada uma das seções para ver se estamos alinhados com o que deseja aprender.
Seção 1: Introdução
Apenas uma seção introdutória ao curso.
Seção 2: Ambiente de desenvolvimento no macOS, Linux Ubuntu e Windows para Python
Nessa seção vou mostrar como criar o seu ambiente de desenvolvimento Python 3.10 nos sistemas macOS Monterey, Windows 11 e Linux Ubuntu.
Seção 3: Configurações do Visual Studio Code VS Code e ambiente virtual venv
Aqui vamos aprender a configurar o Visual Studio Code VS Code para que ele nos ajude a ter mais produtividade ao trabalhar com Python e Django. Também vamos aprender a usar o venv para criação e utilização de ambientes virtuais com Python.
Seção 4: Ambiente Django e Git e Github com chaves SSH (Iniciando o primeiro projeto)
Essa é a seção que vamos aprender a criar o nosso primeiro projeto Django com venv para ambiente virtual, configurar chaves SSH, o git e o github. Assim seu projeto já poderá entrar para seu portfólio para mostrar para possíveis contratantes dos seus serviços. Isso é super útil para entrar no mercado de trabalho.
Seção 5: Django URLs, Views e Templates
Nessa seção vamos conhecer o URLConf, geralmente urls py, do Django para adicionar URLs na nossa aplicação. Vamos trabalhar com as views, que são similares a controllers na arquitetura MVC, e os templates (que são similares às views na arquitetura MVC) do padrão MTV exclusivo do Django. Costumamos comparar a arquitetura exclusiva do Django (MTV – Model, template, view) com a famosa arquitetura MVC existente no mercado. Não se preocupe, você não precisa ter nenhum conhecimento prévio para entender isso.
Seção 6: Django Staticfiles: Arquivos estáticos, imagens, css e javascript
Essa é a seção que vamos aprender a configurar o servidor de arquivos estáticos do Django. Também vamos conhecer alguns comandos usados para gerenciar esses arquivos, como collectstatic e demais. Arquivos estáticos são arquivos que são geralmente servidos diretamente pelo nosso servidor, sem ter algum processamento adicional. Geralmente são imagens, CSS, JavaScript, vídeos e mais.
Seção 7: Django Templates: herança, blocos, if, for e mais
Nessa seção vamos usar todo o poder das templatetags e filters do Django Templates, além de usar recursos de programação dentro dos nossos templates HTML. O Django permite usar lógica dentro do template HTML, com isso é possível executar loops, condicionais e lógica de programação diretamente na página que o usuário vê. Como vamos ver no curso, isso não é recomendável, mas em alguns casos é muito útil.
Seção 8: Django Models e ORM (Object Relational Mapper)
Vamos conhecer os Models e o ORM (Object Relational Mapper) do Django para salvar nossos dados com segurança em bases de dados SQL. Aqui é onde se encontra a maior força do Django. Ele consegue fazer algumas mágicas maravilhosas para ligar seu código com os dados da base de dados.
Seção 9: Djanto testing – Introdução aos testes unitários no Django com Pytest e Unittest
Nessa seção vamos fazer uma introdução aos testes unitários no Django usando o VS Code, Pytest, Unittest e Djanto Test. Testar sua aplicação é extremamente importante, isso agiliza o desenvolvimento, evita os bugs, evita regressões e muito mais.
Seção 10: Usando request.GET no Django e Introdução ao TDD (Test Driven Development)
Vamos aprender a obter valores de request.GET para usar dentro do nosso sistema com Django. Também veremos uma Introdução ao TDD (Test Driven Development) para desenvolvimento guiado por testes.
Vamos entender URL Query Strings e como trabalhar com esses valores com segurança.
Seção 11: Django Pagination – Paginação de QuerySet com Django Paginator
Nessa seção vamos aprender a criar paginação usando o Django Paginator. O mais legal é que tudo aqui será feito manualmente por nós. Não vamos usar nenhuma lib além do Django e o nosso próprio código para montar uma lógica de paginação.
Seção 12: Django Messages – Enviando flash messages para o usuário
O Django tem o Django Messages que pode ser usado para exibir mensagens na tela do usuário com sucesso, erro, informações, debug e mais. Vamos aprender a usar essas flash messages nessa seção.
Seção 13: Django Forms – Criando formulários soltos ou baseados em Models
Nessa seção vamos aprender a criar formulários usando Django Forms. Usaremos formulários soltos com forms.Form e atrelados ao model com forms.ModelForm. Outra mágica impressionante do Django.
Seção 14: Testes funcionais com Selenium e chromedriver
Vamos aprender a escrever testes funcionais usando o selenium e o chromedriver. Os testes funcionais são similares ao que o próprio usuário faria no seu sistema, ou seja, são testes reais da aplicação. Nesses testes, nós abrimos o navegador, procuramos algo na página, clicamos ou escrevemos algo, executamos o conteúdo e verificamos se o que era esperado ocorreu. Isso é feito de maneira automatizada, então mais um ponto para a praticidade que é trabalhar com o Python, Django e Selenium.
Seção 15: Criando a dashboard do autor de conteúdo (área administrativa)
Nessa seção vamos criar uma área administrativa para que o usuário possa manipular dados na nossa aplicação. Com isso podemos permitir que ele tenha controle total sobre os seus dados. Como dados pessoais e posts que tenha criado em nosso sistema. Essa área administrativa é diferente da área admin que vem por padrão no Django, porque ela nos dará muito mais controle sobre o que o usuário poderá manipular.
Seção 16: Class Based Views (CBV) – Usando classes para views no Django
Nessa seção vamos entender como funcionam as Class Based Views (CBV). Elas são uma forma de se trabalhar com objetos Python ao invés de funções dentro das views do Django. Ela não foram criadas para substituir as funções (Function Based Views – FBV), mas trazem algumas melhorias e facilidades para nosso projeto Django.
Seção 17: Deploy da aplicação em um servidor real na Internet
Aqui vamos fazer deploy da aplicação, ou seja, vamos enviar a aplicação para um servidor real, com postgreSQL, ssh, ssl, git, e muitas outras coisas profissionais.
Seção 18: Class Based Views (CBV) com JSONResponse
A essa altura do campeonato, muitas pessoas já adicionariam o DRF (Django Rest Framework) em sua aplicação. Apesar de isso ser super válido e até recomendável, vamos ver como usar JsonResponse para responder via JSON em nossas CBVs. Usaremos o método render_to_response das class based views correspondentes para alterar a forma como os dados são entregues para as aplicações clientes.
Seção 19: Desempenho e Django Debug Toolbar
Fazer aplicações Django pode ser bem simples para quem conhece o framework. Porém, fazer com que o framework perca seu desempenho por erros do desenvolvedor também é extremamente simples. Nessa seção vamos falar de uma lib aliada do desenvolvedor Django, que é a Django Debug Toolbar. É basicamente uma barra de ferramentas que mostra todas as consultas realizadas na base de dados, os templates renderizados e muito mais.
Seção 20: Miscelânea: ORM e Models, Managers, QuerySets, settings, init e mais
Nessa seção vamos ver mais detalhes sobre o ORM, Models, os Managers, as QuerySets, o arquivo settings, os arquivos de init, os Python packages e muito mais. Você vai refinar seu conhecimento em muitas das coisas que vimos em seções anteriores.
Seção 21: Criando um menu com template Django, HTML, CSS e JS para autores
Nessa seção vamos criar um menu com lógica para usuários autenticados e não autenticados. Vamos usar template do Django, HTML, CSS e JavaScript para atingir nosso objetivo.
Seção 22: Criando relações com o User Model do Django
Nessa seção vamos entender como criar relações com o User Model do Django para relacionar coisas como perfis de usuário, compras, fotos, produtos, posts e qualquer outro tipo de dado.
Seção 23: Tradução de um projeto Django (Localização e Internacionalização)
Nessa seção vamos entender e aprender a fazer com que o nosso projeto Django apareça em idiomas diferentes de acordo com o idioma do computador do usuário ou sua localização. Também faremos a tradução de alguns textos para praticar.
Seção 24: Trabalhando com arquivos e imagens no Django
Vamos aprender a trabalhar com arquivos e imagens no Django. Principalmente, vamos redimensionar imagens e também apagar imagens antigas nas atualizações dos posts.
Seção 25: Django Rest Framework – Criando uma API (Application Programming Interface)
Nessa seção vamos aprender a criar uma API (Application Programming Interface) usando o Django Rest Framework.
Seção 26: Django Rest Framework – Class Based Views, JWT, Routers, ViewSets, Paginação e mais
Agora que já conhecemos os serializers do Django Rest Framework e as FBV (function based views), vamos ver novos conceitos, como: CBV (Class Based Views), paginação, autenticação com JWT, ViewSets, Routers e mais.
Seção 27: Django Rest Framework – Escrevendo Testes Unitários Automatizados
Nessa seção vamos aprender a escrever testes unitários automatizados para o Django Rest Framework (DRF). Assim nós conseguiremos evoluir o código e a API RESTful com segurança e sem regressões de código.
Seção 28: CORS – Cross-Origin Resource Sharing no Django Rest Framework
Nessa seção vamos entender o que é CORS – Cross-Origin Resource Sharing no Django Rest Framework. Vamos entender como aplicar esse recurso de segurança na prática em nossa API RESTful.
Extra 1: Bases de dados Relacionais – SQL – MySQL ou MariaDB
Seção extra e introdutória sobre Bases de dados Relacionais – SQL com MySQL ou MariaDB. Recomendável entender sobre banco de dados relacional para trabalhar com o ORM do Django (Models).
Extra 2: Entenda o HTML5 e o CSS3 (Para iniciantes)
Quem vai trabalhar com desenvolvimento web, seja com Django ou outro framework, precisa entender HTML e CSS. Essa é uma seção de introdução do HTML na versão 5 e CSS na versão 3.
Extra 3: Criando uma Landing Page com HTML5 e CSS3
Para dar sequência na seção anterior, vamos criar uma Landing Page usando HTML e CSS. Aprenderemos mais algumas coisas relacionadas que serão de extrema importância na sua carreira.
Extra 4: Comandos Linux, Unix, Mac e Windows WSL2 mais usados no terminal
Aprenda comandos básicos Linux/Unix para navegador no terminal. Essa seção poderá ser seguida usando Windows, Linux ou Mac. Vamos aprender pwd, ls, cd, caminhos absolutos e relativos, e muitos mais. Isso é importante para aprender a trabalhar com servidores web em sistema Linux ou Unix.
Venha comigo, aprender Django Web Framework e Django Rest Framework nessa jornada.
Obs.: é importante e recomendável ter conhecimento em Python para seguir este curso.
-
7Configurações iniciais e minhas recomendações de extensões para o VS CodeVídeo Aula
-
8Preciso de um ambiente virtual? O que é isso? (venv)Vídeo Aula
-
9Como criar um ambiente virtual com Python e venv?Vídeo Aula
-
10Usando o VS Code para automatizar a ativação do ambiente virtual e maisVídeo Aula
-
11Iniciando o primeiro projeto com Django e VenvVídeo Aula
-
12Configurando chaves SSH, git e enviando o projeto para o GithubVídeo Aula
-
13O nosso repositório e possíveis problemas no WindowsTexto
-
14Um .gitignore exclusivo para Django e PythonVídeo Aula
-
15Hello Django - Uma breve conferida no servidor de desenvolvimento do DjangoVídeo Aula
-
16Sobre o ambiente virtualQuestionário
Responda algumas perguntas sobre o ambiente virtual para testar seus conhecimentos.
-
17Me ajude a produzir conteúdo gratuitoTexto
-
18[PARA ALUNOS AVANÇADOS] - Começando em qualquer aulaVídeo Aula
-
19Entendendo os arquivos iniciais de um projeto DjangoVídeo Aula
-
20Sobre django-admin e manage.pyQuestionário
Veja se você entendeu a diferença entre django-admin e manage.py.
-
21Usando o VS Code ao nosso favor para produtividade com o DjangoVídeo Aula
-
22introdução às URLs do Django e Django ViewsVídeo Aula
-
23Sobre URLs e ViewsQuestionário
Algumas perguntas para fixar seu conhecimento sobre URLs e Views.
-
24Uma visão geral sobre o protocolo HTTP, Request e Response, Status e MethodVídeo Aula
-
25Sobre HTTPQuestionário
Teste seu conhecimento em HTTP.
-
26Criando, conhecendo e entendendo apps do DjangoVídeo Aula
-
27Sobre apps do DjangoQuestionário
Vamos testar o seu conhecimento.
-
28Movendo o código para o app recipesVídeo Aula
-
29Templates e renderização de HTML no DjangoVídeo Aula
-
30A função render e mais sobre caminhos de templatesVídeo Aula
-
31O que vamos criar neste projeto? Conheça o nosso site!Vídeo Aula
-
32Adicionando font-awesome no templateVídeo Aula
-
33Criando a header, separando um "partial" para head e usando include no templateVídeo Aula
-
34Ajustando o estilo CSS da HeaderVídeo Aula
-
35Criando a área de busca com form, input e button (search)Vídeo Aula
-
36Sobre Django TemplatesQuestionário
Tire alguns minutos para testar seus conhecimentos em Django Templates.
-
37Sobre as próximas aulas dessa seçãoTexto
-
38Criando a grid de conteúdoVídeo Aula
-
39Criando o card de receitas - Parte 1Vídeo Aula
-
40Criando o card de receita - parte 2Vídeo Aula
-
41Criando o card de receita - parte 3Vídeo Aula
-
42Adicionado o footer (rodapé)Vídeo Aula
-
43Sobre arquivos estáticosTexto
-
44Uma longa descrição sobre arquivos estáticosVídeo Aula
-
45Adicionando Static Files em Recipes para o CSSVídeo Aula
-
46STATIC_URL e STATICFILES_DIRS no DjangoVídeo Aula
-
47STATIC_ROOT e collectstaticVídeo Aula
-
48Sobre arquivos estáticosQuestionário
Teste seus conhecimentos em arquivos estáticos.
-
49Uma nova URL para uma nova View - sobre URLs no DjangoVídeo Aula
-
50Separando os templates de home e recipeVídeo Aula
-
51Herança em templates e template blocksVídeo Aula
-
52Vamos criar um block ser usado como título da páginaVídeo Aula
-
53Injetando dados na lista da view HomeVídeo Aula
-
54Corrigindo a altura dos cards de recipes e adicionando a imagemVídeo Aula
-
55Trabalhando nas diferenças entre detail page e list pageVídeo Aula
-
56Teste seus conhecimentos em templates (e mais)Questionário
Vamos fazer um teste rápido?
-
57Nome único nas URLs e app_name para NamespaceVídeo Aula
-
58Sobre Programação Orientada a Objetos (POO)Texto
-
59Primeiro Django Model e seus atributosVídeo Aula
-
60makemigrations e migrate - Aplicando as migraçõesVídeo Aula
-
61Recomendação de leitura - Django Model field referenceTexto
-
62Sobre a criação de Models.Questionário
Vamos fazer um teste rápido?
-
63Registrando category na admin do DjangoVídeo Aula
-
64Adicionando Recipes na admin do DjangoVídeo Aula
-
65Conhecendo o Django Shell e manipulando QuerySets com eleVídeo Aula
-
66Recomendação de leitura - QuerySet API referenceTexto
-
67Usando o model Recipe real (com QuerySet) na view homeVídeo Aula
-
68Sobre Django QuerySetsQuestionário
Teste seus conhecimentos rapidamente sobre a QuerySet Api no Django.
-
69Ocultando receitas que não estão publicadas (filter para is_published)Vídeo Aula
-
70Corrigindo category com blank True e default NoneVídeo Aula
-
71Corrigindo autor nuloVídeo Aula
-
72Django User ModelQuestionário
Teste rápido sobre a criação de usuários no Django.
-
73Mostrando erro 404 Not Found para páginas que não existemVídeo Aula
-
74Usando o shortcut get_list_or_404 (atalho)Vídeo Aula
-
75Mostrando a página de detalhes da receitaVídeo Aula
-
76Ajustando o css do modo de preparoVídeo Aula
-
77Usando get_object_or_404 ao invés de fazer a consulta na mãoVídeo Aula
-
78Usar get_list_or_404 na home ou não?Vídeo Aula
-
79Publique as receitas novamente (is_published = True)Texto
-
80Renomeando um projeto Django inteiroVídeo Aula
-
81Internacionalização, Time Zones e Tradução do Django para português - PT-BRVídeo Aula