Sabemos que a principal forma que os usuários possuem para interagir com nossas aplicações web, são utilizando páginas HTML. No Flask, isso não é diferente.
Vimos no artigo anterior como criar nossa primeira app, porém estávamos retornando uma string como resposta de uma requisição. Sendo assim, neste artigo veremos como retornar páginas HTML através dos métodos da nossa aplicação Flask.
Respondendo requisições com HTML
O primeiro passo para retornar uma página HTML como resposta de uma requisição no Flask, é criar o diretório que armazenará estes arquivos. Para isso, criamos um diretório chamado “templates” dentro do projeto. É lá que serão armazenados os arquivos HTML do projeto:
Agora, dentro do diretório “templates”, podemos criar os arquivos HTML do nosso projeto:
Por fim, para retornar a página index.html
nos métodos do nosso projeto Flask, utilizamos o método render_template()
, como podemos ver abaixo:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/teste")
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run()
Curso Flask - Fundamentos
Conhecer o cursoCom isso, ao acessar a rota 127.0.0.1:5000/teste
, teremos o seguinte retorno:
Vale lembrar que, por padrão, o Flask irá procurar o arquivo index.html
no diretório templates
do projeto. Caso você queira criá-lo em um diretório com outro nome, você deve passá-lo como parâmetro do construtor do Flask:
from flask import Flask, render_template
app = Flask(__name__, template_folder='templates_folder')
@app.route("/teste")
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run()
Isso fará com que todos os templates sejam buscados no diretório templates_folder
do seu projeto (ou qualquer nome que você preferir).
Concluindo…
Como dito acima, as páginas HTML são os principais meios de interação entre um usuário e uma aplicação web. Saber como retorná-las é de extrema importância para qualquer desenvolvedor.
Além disso, o Jinja2 possui diversos recursos para trabalhar com este tipo de arquivo, e é exatamente isso que veremos no próximo artigo desta trilha :)