MVC, MVT e Template Engine - #13 MVT com Python - Views e Template
13/07/2020Nessa vídeoaula vamos verificar entender o padrão de arquitetura de software MVC (Model - View - Template) muito comumente utilizado na linguagem de programação Python.
Os padrões de arquitetura são importantes para:
- Padronizar diretórios, nomeclaturas e componentes
- Possibilitar a divisão de equipes de trabalho
- Estabelecer um fluxo de informações
Django
O Django utiliza o padrão de arquitetura de software MVT (Model, View e Templates). Neste padrão, a view não abriga o design da página, mas sim realiza a lógica e chama a renderização do template.
O template por sua vez possui o código de marcação com a parte visual que será apresentada ao usuário.
Os models são responsáveis pelo gerenciamento do banco de dados.
Abaixo segue o fluxo de dados no Django:
Primeiramente iremos instalar os softwares necessários:
- Python
- Django
- PyCharm
No terminal criaremos uma pasta, entraremos nela, criaremos a venv e instalaremos o Django.
mkdir Python
cd c:/Python
python -m venv venv
cd venv/Scripts
activate
python -m pip install Django
django-admin startproject project .
python manage.py startapp app
project/settings.py
Dentro do nosso projeto precisamos adicionar o app para leitura:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app'
]
project/urls.py
Vamos criar uma rota de teste pra ver se nosso sisteminha já está rodando ok.
from django.contrib import admin
from django.urls import path
from app.views import contato
urlpatterns = [
path('admin/', admin.site.urls),
path('contato/', contato),
]
app/views.py
Agora precisamos criar a view contato chamada na rota acima:
from django.shortcuts import render
# Create your views here.
def contato(request):
data={}
data['name']='Thiago'
data['arr']=['thiago','thais','roberto','jose']
return render(request, 'contato.html',data)
templates/main.html
Criaremos a pasta templates e dentro dela criaremos o arquivo main.html que receberá o código padrão da sua aplicação (aquilo que não muda).
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Webdesign em Foco</title>
<link rel="stylesheet" href="{% static 'style.css' %}">
</head>
<body>
{% block container %}
{% endblock %}
</body>
</html>
templates/contato.html
Criaremos agora nosso template de contato extendendo o nosso layout padrão (main.html):
{% extends 'main.html' %}
{% block container %}
<h1>Contatos</h1>
Este é o contato {{name}}
{% for names in arr %}
{{names}}<br>
{% endfor %}
{% endblock %}
Para rodar o nosso servidor Ptyhon executamos o seguinte comando:
python manage.py runserver
static/style.css
Podemos incluir também arquivos estáticos no nosso sistema, tais como: imagens, javascript e css. Para isso, vamos criar a pasta static e dentro dela o arquivo style.css:
body{background:gray;}
Nós chamamos esse tipo de arquivo no template utilizando no topo:
{% load static %}
E no html normalmente:
<link rel="stylesheet" href="{% static 'style.css' %}">
Por hoje é só! Sucesso nos códigos e na vida!