/Udemy-Django-PyBurguer

Projeto do curso "Django 4 e Bootstrap 5 em 120 minutos" da Udemy.

Primary LanguagePython

Django - PyBurguer

Passos

Seção 1 - O que faremos durante o curso? Como o conteúdo será apresentado?

  1. Criar projeto Django no PyCharm com nome "burguer":

PyCharm-Django-Starter

Seção 2 - Fundamentos de projetos e aplicações Django

  1. Na pasta burguer, criar urls.py.
  2. Copiar o conteúdo de core>urls.py para burguer>urls.py.
  3. Em views.py criar uma função home.
  4. Em burguer>urls.py remover path('admin/', admin.site.urls) e adicionar path('', views.home, name='home').
  5. Em pyburguer>urls.py, adicionar path('', include('burguer.urls')) e burguer>urls.py.
  6. Em pyburguer>settings.py verificar se a aplicação 'burguer' está em INSTALLED_APPS.

Seção 3 - Introdução aos templates HTML

  1. Na pasta "templates", criar uma subpasta "burguer".
  2. Em templates>burguer, criar base.html que serivrá extendido pelos demais templates.
  3. Em templates>burguer, criar home.html que extende base.html.
  4. Em views.py, alterar função home para usar o home.html.

Seção 4 - Fundamentos do Djando Admin, CRUD e arquivos estáticos

  1. Em burguer>settings.py verifique as configurações do banco de dados no dicionário DATABASES.
  2. Em models.py, criar a classe Produto.
  3. Executar o comando python manage.py makemigrations.
  4. Executar o comando python manage.py migrate.
  5. Executar o comando python manage.py createsuperuser e configurar login e password.

Terminal-SuperUser

  1. (Opcional) Configurar o runserver
  2. python manage.py createsuperuser
  3. Em burguer>admin.py, registre a model Produto com admin.site.register(Produto).
  4. Acesse '/admin/' do localhost com as credeciais criadas para o superuser para verificar a implementação.

Django-admin

  1. Adicione o campo de imagem na classe Produto.
  2. Em pyburguer>settings.py, defina STATIC_ROOT, MEDIA_URL e MEDIA_ROOT.
  3. Em templates>burguer, criar produto.html.
  4. Em burguer>urls.py, adicionar o path de produto e dos arquivos estáticos.
  5. Executar os comandos python manage.py makemigrations e python manage.py migrate.

Terminal-Migration-0002

Seção 5 - Layout e Bootstrap

  1. Criar pasta fragments dentro da templates>burguer.
  2. Em templates>burguer>fragments, criar navbar.html e colar um dos exemplos de https://getbootstrap.com/docs/5.1/components/navbar/
  3. Editar base.html para adicionar div com bootstrap, navbar entre tags headers, e conteúdo entre tags main.
  4. Editar home.html.
  5. Editar navbar.html, alterando o nome de titulo, remover dropdown menu e elemento disable.
  6. Editar navbar.html, adicionar a classe "ms-auto" para <ul> para alinhar elementos ao centro.
  7. Editar navbar.html, adicionar botão de login, botão de cadastre-se.
  8. Em base.html, linkar font awesome para adicionar imagens.
  9. Em base.html, mudar a tag de header para nav, e colocar o nome do bloco de navbar também em home.html.
  10. Em burguer>fragments, criar o arquivo banner.html.
  11. Incluir bloco banner em base.html e home.html.
  12. Em burguer, criar diretorio static/burguer.
  13. Em burguer>static>burguer, adicionar o arquivo de imagem burguer_slide.png.
  14. Em burguer>urls.py, substituir MEDIA_URL por STATIC_URL e MEDIA_ROOT por STATIC_ROOT.
  15. Em burguer>fragments, criar o arquivo conteudo.html.
  16. Incluir bloco conteudo em base.html e home.html.
  17. Em views, alterar função home.
  18. Fazer outras modificações para fazer tudo funcionar (foram mostradas nas seções seguintes).

Site-Home-V1

Seção 6 - QuerySet API e Recuperação de informações a partir do Banco de Dados

  1. (Opcional) No terminal, execute pip install iPython e python manage.py shell.
  2. (Opcional) No terminal, execute python manage.py shell para abir o shell.
  3. (Opcional) No shell, adicione algum hamburguer:

`

from burguer.models import Produto

produto = Produto()

produto.descricao = 'Artesanal'

produto.preco = 19.99

produto.imagem = ''

produto.save()

produtos = Produto.objects.all()

produtos

`

  1. Em models.py, adicione o campo nome para a classe Produto, e use-o em __str__().
  2. Executar os comandos python manage.py makemigrations e python manage.py migrate para atualizar o banco de dados.

Terminal-Migration-0003

  1. Use o Django Admin (ou Shell) para atualizar os valores de nome e descrição dos produtos.
  2. Modifique produto.html e conteudo.html para que referenciam campos de Produtos corretamente.
  3. Em settings.py e base.html, mude o idioma para "pt-br"

Site-Home-V2

Seção 7 - Fundamentos da navegação entre páginas

  1. (Já foi feito antes - Seção 5) Para adicionar uma página para cada produto, criar produto.html sem banner, em burguer>urls.py criar uma função para tratar da rota, em burguer>views.py criar função detalhe_produto(), em conteudo.html colocar link <a href="{% url 'produto' produto.id %}">.
  2. Em navbar.html, adicionar link para home com <a href="{% url 'home' %}">PyBurguer</a>.

Site-BigMac-V2

Seção 8 - Carregamento de imagens armazenadas no Banco de Dados

  1. (Já foi feito antes - Seção 5) Em burguer>urls.py, use MEDIAR_URL e MEDIA_ROOT, ao invés de STATIC_URL e STATIC_ROOT.
  2. (Já foi feito antes - Seção 5) Em conteúdo.html e produto.html use <img src="{{ produto.imagem.url }}" alt="hamburguer"/> para carregar as imagens do banco de dados.

Obs.: pyburguer é o core.

Referências

Udemy - Django 4 e Bootstrap 5 em 120 minutos: https://www.udemy.com/course/django-em-120-minutos/