Flask: Utilizando nos Servidores da KingHost


Flask é um Microframework-Python baseado em Werkzeud, Jinja 2 de fácil configuração. Além disso, existe uma ótima documentação disponível e é mantido por uma comunidade bastante ativa.

Neste post tutorial serão abordados os seguintes pontos:

  • Preparação da estrutura na KingHost;
  • Criação do ambiente virtual;
  • Instalação dos componentes básicos;
  • Criação de uma aplicação de exemplo, nosso famoso Hello World!

Ao final desse tutorial você terá aprendido a criar a estrutura do Flask nos servidores da KingHost e a publicar sua app.

Criando aplicação no painel de controle

Para iniciar esse tutorial, você já deve estar num servidor com suporte à Python.
Acesse seu painel de controle da hospedagem, selecione seu domínio, vá até a sessão Python.
Nesta opção, caso você esteja em um servidor sem suporte a Python, irá exibir a seguinte mensagem:

flask

Basta você ir no menu Ajuda > Central de Chamados e abrir um chamado na Categoria Migração, Subcategoria > Quero trocar de plataforma.

Seguindo:
Sessão Python > Django, em seguida crie sua aplicação definindo o nome, em Framework selecione: *Outros.
Veja o exemplo:

flask

Criando estrutura, virtualenv e instalando pacotes

Virtualenv é um recurso disponível no Python, para criação de ambientes virtuais que pode ser isolado para cada projeto. Muito útil quando trabalhamos com duas aplicações que precisam de versões diferentes do mesmo pacote por exemplo. Cada uma pode usar um virutalenv único e ter suas dependências isoladas. Saiba mais: https://virtualenv.pypa.io/en/stable/

Neste tutorial, foi usada a seguinte versão do Python:

Criando o site-packages e instalando o virtualenv:

Criar o diretório onde ficarão salvos os ambientes virtuais:

Criados os diretórios para instalação de pacotes e para criação dos ambientes virtuais.
Vamos criar nosso virtualenv e ativá-lo:

Na própria criação já são instalados os pacotes padrões.

Note que, ao ativarmos o ambiente virtual, a exibição no bash já muda, nos indicando em qual ambiente nós estamos. Todos os comandos e pacotes são válidos somente para esse ambiente. Isso facilita muito nosso gerenciamento quando trabalhamos com multiprojetos.

O diretório para nossa aplicação deve ficar dentro de /home/usuario/apps_wsgi/ , caso ainda não tenha sido criado:

Até agora você deve ter essa estrutura criada:

Para instalar o Flask usamos o gerenciador de módulos do python, chamado pip, com o comando a seguir:

Junto com o Flask serão instaladas as dependências necessárias, podemos checar da seguinte forma:

É uma boa prática salvar os pacotes necessários para sua aplicação em um arquivo requirements.txt. Assim se houver necessidade de migrar o projeto ou de instalá-lo em outro ambiente, basta rodar o comando pip install -r requirements.txt e todos os componentes serão instalados.

Entre na pasta do seu projeto:

Criando nosso projeto com Flask:

Estrutura de diretórios:

1 – app -> pasta onde fica o código da aplicação;
2 – app/templates -> aqui vai o código html das nossas páginas;
Geralmente as aplicações também contém um diretório static com as mídias estáticas do projeto e arquivos .css e .js. Como nosso é exemplo é apenas um hello world, não criaremos este diretório.

flask

Estrutura de arquivos:

1 – run.py -> Ponto inicial da aplicação. Aqui será startado o servidor flask e nossa app.
2 – config.py -> Aqui configuramos os aspectos variáveis da aplicação, como conexão com banco de dados, diretivas gerais do projeto, conexões com serviços externos como smtp por exemplo, etc.
3 – app/__init__.py -> Inicializa a app como um módulo Python.
4 – app/views.py -> Arquivo onde são configuradas as rotas da app.

Obs: Podemos citar aqui também o arquivo app/models.py que é a representação de um modelo para uma tabela do banco de dados. Mas nesse projeto não faremos uso de nenhum recurso de banco de dados.

Vamos criar nosso config.py dentro do diretório myapp:

E colocamos o seguinte código dentro do arquivo:

Lembrando que este é um exemplo bem básico, e não exige nenhuma configuração detalhada, por isso estou criando diretamente no vim XD

Criando o inicializador:

Com o seguinte código:

Linha 2: Inicializa a app;
Linha 3: Carrega as views;
Linha 4: Carrega o config.py

Próximo passo:

Que vai conter o seguinte código:

Falta ainda nosso arquivo views.py:

Templates

Vamos definir os códigos de nossos templates agora. Serão usados um template base, e um html para exemplificar o uso de herança.
Nosso arquivo base.html ficará assim:

E nosso index.html:

Lembrando que ambos devem ficar dentro da pasta app/templates.

Na estrutura da KingHost, o Python roda através do mod_wsgi em conjunto com o Apache, dessa forma precisamos configurar o arquivo .wsgi para que nossa app possa rodar corretamente.
Como estamos rodando através de um virtualenv, precisamos configurar as seguintes linhas:

Primeiro podemos excluir o arquivo que o painel de controle cria automaticamente, que fica em /home/usuario/apps_wsgi:

Obs: Para a versão 2.7 do python, a sintaxe é:

Nossa estrutura completa dentro do diretório apps_wsgi fica assim:

flask

Estando tudo ok, basta atualizarmos nosso arquivo .wsgi para que a app seja recarregada. Podemos fazer somente com o comando touch:

Conclusão aplicação Flask

Flask é ideal para desenvolvimento de aplicações mais simples, e ainda nos permite uma certa escalabilidade. Pois podemos começar com um core pequeno conforme nosso exemplo, e ir adicionando pacotes de acordo com a necessidade de nossa app. Com a engine do Jinja2, que já vem no core padrão do Flask, podemos usar o recurso de herança em nossos templates e acrescentar dinamismo ao código html, como vimos de uma forma bem básica nesse post.
Flask é muito simples, e a medida que você for se especializando, vai perceber que dá pra desenvolver muita coisa legal de forma bem ágil com os recursos que esse framework nos disponibiliza.

Quer saber mais sobre novidades como esta? Acompanhe os posts no Blog da KingHost.

 

Resumo
Flask: utilizando nos servidores da KingHost
Nome do Artigo
Flask: utilizando nos servidores da KingHost
Descrição
Saiba como realizar a configuração do Flask, Microframework-Python baseado em Werkzeud, nos servidores da KingHost.
Autor
Nome
KingHost
Logo
Mateus Pereira

Mateus Pereira

Suporte N2 em KingHost
Estudante de Graduação em Sistemas para Internet no Instituto Federal de Porto Alegre,
Tećnico com ênfase em Programação pelo IFSUL. Amante de livros, música e café.
Mateus Pereira

Últimos posts por Mateus Pereira (exibir todos)

Comentários

comentário(s)