Publicando aplicativo Flask Framework

De Wiki Integrator do Brasil
Edição feita às 18h07min de 18 de junho de 2020 por Integratorhost (disc | contribs)

Ir para: navegação, pesquisa

Índice

Antes de Começar

Se sua hospedagem é a padrão, certifique-se de que esteja no plano que possui suporte a este serviço.
Muitos dos comandos apresentados neste tutorial precisam ser realizando no terminal.

Sobre o Python

A versão do Python usada é a 3.x. Se o plano possui suporte, teste o acesso da seguinte forma:

python3

O comando retornará algo como:

Python 3.8.3 (default, Jun 18 2020, 14:23:08) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Criando um diretório virtual

Execute o seguinte comando no terminal:

python3 -m venv virtual

Usando o Virtual Env

Para entrar no Virtual Env:

source virtual/bin/activate

Configurando um simples Aplicativo

O exemplo a seguir é um simples Hello World!
1. Crie o diretório app dentro do local onde ficará seu projeto Flask. Por exemplo:

hello\
	app
	microblog.py

1.1. Em app, temos o seguinte arquivo:

app\
	__init__.py
	routes.py

1.1.a. Em __init__.py, há o seguinte conteúdo:

from flask import Flask

app = Flask(__name__)

from app import routes

1.1.b. No arquivo routes.py, o seguinte conteúdo:

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

2. No arquivo microblog.py, na raiz do aplicativo:

from app import app


3. Dentro do diretório raiz do aplicativo, criar o arquivo passenger_wsgi.py:

hello\
	app
	microblog.py
	passenger_wsgi.py

3.1. O conteúdo de passenger_wsgi.py, onde USUARIO é o seu de acesso SSH/cPanel:

import sys, os

INTERP = "/home/USUARIO/virtual/bin/python"
#INTERP is present twice so that the new Python interpreter knows the actual executable path
if sys.executable != INTERP: os.execl(INTERP, INTERP, *sys.argv)

cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/microblog')  #You must add your project here
from app import app as application