1
resposta

Fiz de outra forma

Olá professor, fiz de outra forma usando um diretório com a index.html e o app.py recebendo esse html.

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
  return render_template('index.html')

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

Dessa forma pode existir erros ou requisições a mais do que na sua?

1 resposta

Oiii Douglas, como você está?

Esta é uma boa prática. Ao longo do curso o instrutor irá ensinar essa técnica de armazenar os arquivos html em uma pasta. Por padrão, o flask irá procurar os arquivos html em uma pasta chamada "templates".

Mas, caso queira mudar a pasta onde ele procura esse arquivos, também é possível, basta passarmos o parâmetro template_folder para a instância do Flask, que por padrão possui o nome de "templates".

Vamos ver isso na prática. Imagine a seguinte estrutura onde temos uma pasta "arquivos_html" onde estará localizado o nosso arquivo index.html:

- PROJETO
   - arquivos_html
       - index.html
   - main.py 

Para que o Flask reconheça essa pasta, podemos fazer o seguinte procedimento:

import os
from flask import Flask, render_template

template_dir = os.path.abspath('arquivos_html') # obtém o endereço completo da pasta

app = Flask(__name__, template_folder=template_dir)

@app.route("/")
def index():
  return render_template('index.html')

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

No código acima, passamos para o parâmetro template_folder o endereço da pasta "arquivos_html" , fazendo com que dessa forma o Flask procure os arquivos dentro dessa pasta e não mais na pasta de templates.

Porém, não recomendo que altere, pois é convenção termos a pasta nomeada como "templates", mas se tiver alguma situação específica que você precise disso, é interessante que saiba que existe a possibilidade

Qualquer dúvida estou por aqui.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software