Workshop para disciplina MATC82 - Sistemas Web, da UFBA, lecionada pela professora Gabriela Mota.
- Fazer um workshop utilizando a linguagem Python voltada para web
- Workshop prático, mas que tenha um pouco de conteúdo teórico
- Escolhido microframework Flask
- Aplicação de lista de afazeres
- Fazer a aplicação do zero ao entregável ao cliente
Download dos frameworks:
Framework frontend para estilização e interação do usuário na página.
Com ele montamos o layout da aplicação, como formulários, tabela, modals, botões ...
Framework frontend para inserção de ícones nas páginas web.
Todos ícones que tem na aplicação foi utilizando esse framework.
Plugin do jQuery para realização de ordenação, paginação e buscas em tabelas.
Todas essas funcionalidades na tabela de listagem das opções são feitas com esse plugin.
A princípio entrou por ser dependência do DataTables, mas posteriormente iremos utilizar mais ele.
Primeiramente, vamos atualizar o sistema:
$ sudo apt update
Depois, instalar virtual enviroment do Python:
$ sudo apt install python-virtualenv -y
Criar ambiente virtual:
$ virtualenv -p `which python3` venv
$ echo venv >> .gitignore
$ source venv/bin/activate
Instalar Flask:
$ pip install Flask
- Hello world com Flask!
Gerenciamento de dependências:
$ pip freeze > requirements.txt
- Criar pasta templates
- Mover index.html para templates
- Mover assets para static
- Inserir na template index.html via static
- Renderizar o template
- Criar banco no MongoLabs
- Instalar
mongoengine:
$ pip install mongoengine
$ pip freeze > requirements.txt
- Conectar!
Boas práticas:
- Env config file
- Excluir do git
- Ler no
- Editar formulário
- Criar entidade Task
- Criar método create
- Aumentar .gitignore
$ echo __pycache__ >> .gitignore
- Fazer consulta dos dados
- Passar dados para o template
- Renderizar informações no front
- Criar método para deletar
- Editar formulário
- Criar método para marcar como completo
- Editar formulário
- Editar formulário
- Se atentar ao método de envio
- Construir método de edição
- Procfile
- runtime
- Retirar pgkresources do requirements.txt
Bônus: HEROKU como Continous Integration