- Criar projeto Django no PyCharm com nome "burguer":
- Na pasta burguer, criar urls.py.
- Copiar o conteúdo de core>urls.py para burguer>urls.py.
- Em views.py criar uma função home.
- Em burguer>urls.py remover
path('admin/', admin.site.urls)
e adicionarpath('', views.home, name='home')
. - Em pyburguer>urls.py, adicionar
path('', include('burguer.urls'))
e burguer>urls.py. - Em pyburguer>settings.py verificar se a aplicação 'burguer' está em INSTALLED_APPS.
- Na pasta "templates", criar uma subpasta "burguer".
- Em templates>burguer, criar base.html que serivrá extendido pelos demais templates.
- Em templates>burguer, criar home.html que extende base.html.
- Em views.py, alterar função home para usar o home.html.
- Em burguer>settings.py verifique as configurações do banco de dados no dicionário DATABASES.
- Em models.py, criar a classe Produto.
- Executar o comando
python manage.py makemigrations
. - Executar o comando
python manage.py migrate
. - Executar o comando
python manage.py createsuperuser
e configurar login e password.
- (Opcional) Configurar o runserver
- python manage.py createsuperuser
- Em burguer>admin.py, registre a model Produto com
admin.site.register(Produto)
. - Acesse '/admin/' do localhost com as credeciais criadas para o superuser para verificar a implementação.
- Adicione o campo de imagem na classe Produto.
- Em pyburguer>settings.py, defina STATIC_ROOT, MEDIA_URL e MEDIA_ROOT.
- Em templates>burguer, criar produto.html.
- Em burguer>urls.py, adicionar o path de produto e dos arquivos estáticos.
- Executar os comandos
python manage.py makemigrations
epython manage.py migrate
.
- Criar pasta fragments dentro da templates>burguer.
- Em templates>burguer>fragments, criar navbar.html e colar um dos exemplos de https://getbootstrap.com/docs/5.1/components/navbar/
- Editar base.html para adicionar div com bootstrap, navbar entre tags headers, e conteúdo entre tags main.
- Editar home.html.
- Editar navbar.html, alterando o nome de titulo, remover dropdown menu e elemento disable.
- Editar navbar.html, adicionar a classe "ms-auto" para
<ul>
para alinhar elementos ao centro. - Editar navbar.html, adicionar botão de login, botão de cadastre-se.
- Em base.html, linkar font awesome para adicionar imagens.
- Em base.html, mudar a tag de header para nav, e colocar o nome do bloco de navbar também em home.html.
- Em burguer>fragments, criar o arquivo banner.html.
- Incluir bloco banner em base.html e home.html.
- Em burguer, criar diretorio static/burguer.
- Em burguer>static>burguer, adicionar o arquivo de imagem
burguer_slide.png
. - Em burguer>urls.py, substituir MEDIA_URL por STATIC_URL e MEDIA_ROOT por STATIC_ROOT.
- Em burguer>fragments, criar o arquivo conteudo.html.
- Incluir bloco conteudo em base.html e home.html.
- Em views, alterar função home.
- Fazer outras modificações para fazer tudo funcionar (foram mostradas nas seções seguintes).
- (Opcional) No terminal, execute
pip install iPython
epython manage.py shell
. - (Opcional) No terminal, execute
python manage.py shell
para abir o shell. - (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
`
- Em models.py, adicione o campo nome para a classe Produto, e use-o em
__str__()
. - Executar os comandos
python manage.py makemigrations
epython manage.py migrate
para atualizar o banco de dados.
- Use o Django Admin (ou Shell) para atualizar os valores de nome e descrição dos produtos.
- Modifique produto.html e conteudo.html para que referenciam campos de Produtos corretamente.
- Em settings.py e base.html, mude o idioma para "pt-br"
- (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 %}">
. - Em navbar.html, adicionar link para home com
<a href="{% url 'home' %}">PyBurguer</a>
.
- (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.
- (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.
Udemy - Django 4 e Bootstrap 5 em 120 minutos: https://www.udemy.com/course/django-em-120-minutos/