Skip to content

Instantly share code, notes, and snippets.

@jeffersonchaves
Last active November 16, 2021 13:00
Show Gist options
  • Save jeffersonchaves/6dad94882c510cbf2af87ae42f718160 to your computer and use it in GitHub Desktop.
Save jeffersonchaves/6dad94882c510cbf2af87ae42f718160 to your computer and use it in GitHub Desktop.

#Python Flask Introdução

Esta é uma breve introdução ao framework Flask e pode servir como um tutorial prático para dar os primeiros passos com o Flask.

Irei mostrar como instalar o Flask de modo bem simples e também mostrar o “Hello World!” com Flask, além de uma breve noção do que vem a ser esse tal de Fask…

O que é Flask ?

Flask é um micro-framework para Python, segundo a documentação…

“Micro” não significa que a sua aplicação web inteira tenha que se encaixar em um único arquivo Python, embora isso seja totalmente possível. Também não quer dizer que falte funcionalidade ao Flask. “Micro” em microframework significa que o Flask procura manter o núcleo simples, mas extensível. O Flask não toma muitas decisões por você, tipo, que banco de dados usar. Por outro lado, é fácil mudar as coisas que já decidiu, tipo, o mecanismo de templates. Todo o resto fica por sua conta decidir, de modo que você pode obter do Flask tudo o que precisa e dispensar tudo o que não quer.

Ele é baseado no Werkzeug, Jinja 2 e em boas intenções (“good intentions”).

Por padrão, o Flask não inclui uma camada de abstração de banco de dados, validação de formulário, ou qualquer outra coisa para a qual já existam diferentes bibliotecas. Em vez disso, suporta extensões para adicionar uma determinada funcionalidade à sua aplicação como se ela tivesse sido implementada no Flask em si. Muitas extensões fornecem integração de banco de dados, validação de formulários, manipulação de upload, diversas tecnologias de autenticação abertas, entre outras coisas. O Flask pode ser “micro”, mas está pronto para uso em produção, preenchendo uma gama variada de necessidades

Instalação

O Flask depende de duas bibliotecas externas, Werkzeug e Jinja2. Werkzeug é um servidor HTTP que permitirá que código Python seja usado e chamado por um Navegador de Internet como o Google Chrome ou o Firefox, por exemplo. Já o Jinja, permite que código Python possa ser utilizado dentro de arquivos .html, seguindo uma sintaxe especial.

Se você executar o comando pip install Flask estará partindo para uma instalação “global” no seu desktop, imaginando que você está no Linux e possui o pip instalado além do próprio Python, é claro.

Para detalhes de como instalar o Python e o PIP no Windows, você pode consultar essa apostila no capítulo 16, que trata do tema da instalação.

Se já tem o Python e o PIP instalados, execute o comando:

pip install Flask

Pronto, já pode começar a criar sua aplicação web com Flask.

Começo rápido

Após ter concluído a instalação do Flask, crie um arquivo denominado hello.py e insira o seguinte conteúdo.

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run()

Agora, execute o arquivo a partir do terminal (certifique-se que está dentro da pasta do projeto) e acesse o resultado através do endereço http://127.0.0.1:5000/, você deve estar vendo a mensagem “Hello World!”.

python hello.py
* Running on http://127.0.0.1:5000/

Detalhes do código

Vamos explicar em detalhes o que ocorreu em cada uma das partes do projeto:

1) importando a biblioteca

from flask import Flask

Nesse trecho de código importamentos a biblioteca instalada anteriormente. Embora ela tenha sido instalada, o Python entende que não é adequado importar todas as bibliotecas (inclusive as que não serão utilizadas) para todos os arquivos. Assim, é preciso deixar explicito quais são as biliotecas usadas pela nossa aplicação.

2) Criando um objeto Flask

app = Flask(__name__)

O Flask é formado por alguns módulos. O principal deles é a classe Flask. Em outras linguagens para se criar um objeto de uma classe é utlizado o comando new. Em python isso não é necessário. A classe recebe como informação para se criada a variável __name__, uma variável especial do Flask, que serve para que ele saiba qual o nome do arquivo que está sendo executado.

3) Criando um método e expondo-o pelo navegador

Já pensou se fosse possível chamar uma função de um programa pelo navegador? Isso é possível com Flask. Para tanto é necessário "mapear" essa função para um endereço ou como é chamado aqui, uma rota

@app.route("/")
def hello():
    return "Hello World!"

A função hello() apenas exibe a frase "Hello World!". Para que essa função possa ser chamada pelo navegador, o decorador @app.route("/") pode ser usado. Nesse caso a barra indica que essa é pagina inicial do site. É possível termos em nossa aplicação diversas rotas, tais como:

@app.route("/")
def hello():
    return "Hello World!"

@app.route("/home")
def hello2():
    return "Hello World!"

@app.route("/noticias")
def noticias():
    return "Noticias!"


@app.route("/noticias/esportes")
def esportes():
    return "Esportes"
    

*** Um decorador é uma maneira simples de se adicionar mais funcionalidades a uma função

  1. Um ponto de entrada diferente

A maioria das linguagens possui um ponto de entrada. Em linguagem C e em Java, existe uma função especial chamada main. Essa função indica que o programa deve começar sua execução a partir dela. Já no HTML o ponto de entrada é o arquivo index.html.

Em uma aplicação Flask o ponto de entrada é representado pelo código abaixo:

if __name__ == "__main__":
    app.run()

Esse código verifica se o arquivo que está sendo executado é o arquivo definido como principal ou como ponto de entrada.

Esse vídeo explica com mais detalhes essa questão.

Fechando a conta

E aí, conseguiu instalar o Flask e vê-lo funcionado ?

Espero que sim, pois esse era o objetivo do texto.

Se você não conseguiu seguir o passo a passo deste tutorial pode entrar em contato!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment