Então, você acabou de concluir um site de portfólio simples com Python e deseja colocá-lo em uso de hospedagem gratuita. Você já ouviu falar sobre a hospedagem gratuita do Heroku, mas não entende muito bem os detalhes técnicos envolvidos.
Este guia irá ajudá-lo a trabalhar em todo o processo de hospedagem do seu site Python gratuitamente no Heroku, de uma forma muito mais simples. Presumimos que você tenha um conhecimento básico de Python e pelo menos um de seus frameworks --- de preferência Django.
Por que escolher o Heroku?
Heroku é um provedor de hospedagem na Web de Plataforma como Serviço (PaaS) que executa sua infraestrutura em algo que chama de Dynos. Ele mantém você focado na implantação, enquanto cuida da dificuldade de manter e construir sua infraestrutura web.
Caso você não possa pagar por hospedagem paga, mas deseja criar um portfólio online rapidamente, considere hospedá-lo no Heroku. Além de ser gratuito, é muito rápido colocar seu site no Heroku.
Claro, existem outras plataformas onde você pode hospedar seu site Python gratuitamente, como Amazon Web Services e PythonAnywhere. Mas o processo de hospedagem no Heroku é fácil --- especialmente para pessoas sem conhecimento prévio de implantação.
Quando você hospeda um site gratuitamente no Heroku, não precisa necessariamente ter um nome de domínio. Tudo que você precisa é especificar o nome do seu aplicativo na plataforma de hospedagem. O Heroku então cria um localizador app.herokuapp.com para você. Quando você está neste serviço gratuito, seu site funciona com Heroku Dynos.
Se, posteriormente, você decidir expandir e obter um nome de domínio, isso é igualmente fácil e rápido, mas você tem que pagar por isso. O custo enorme de manter a atualização pode fazer com que você repense, mas vale a pena o dinheiro se você estiver determinado a investir mais no projeto.
Vamos agora examinar como hospedar seu site Python gratuitamente no Heroku. Observe que isso é baseado no Python versão 3.7 e no Django versão 2.1.7.
Configurar Git e Heroku
Para começar, baixe o Git do site git-scm . Os vários comandos e truques para instalar o Git em todos os sistemas operacionais são explicados aqui.
Depois de instalar o Git, você também precisa configurar uma conta com o Heroku na página de inscrição do Heroku, se ainda não tiver uma.
Em seguida, baixe e instale o Heroku CLI do site do Heroku. A CLI do Heroku permite que você se comunique com seu repositório toda vez que precisar enviar alterações para seu aplicativo.
Se você ainda não está familiarizado com os comandos Git, deve dar uma olhada em nossa introdução ao controle de versão com Git .
Configurar um projeto Django
Se você não tem um projeto Django configurado e deseja experimentá-lo com este tutorial, abra a linha de comando e crie um ambiente virtual se ainda não tiver um. Assim que o ambiente virtual estiver pronto, use este comando para instalar a estrutura Django:
pip install django==2.1.7
Depois que o Django for instalado no ambiente virtual, execute o seguinte comando para iniciar um novo projeto Django:
django-admin.py startproject project_name
Em seguida, crie um novo aplicativo Python. Para fazer isso, migre para a pasta raiz do seu projeto no CMD e execute:
python manage.py startapp app_name
Lembre-se de substituir project_name e app_name por seus nomes preferidos.
Você precisa do módulo gunicorn para isso, então você também deve executar pip install gunicorn . Em seguida, adicione gunicorn à lista de aplicativos instalados em settings.py , conforme mostrado abaixo:
Esta é apenas uma introdução superficial à construção de um aplicativo Django. No entanto, se seu aplicativo estiver pronto ou se você estiver apenas construindo um, certifique-se de que o python manage.py executado migre para criar seu banco de dados.
Agora você deve ter um aplicativo Python em execução dentro de sua estrutura Django. Agora vamos mergulhar em nosso objetivo principal.
Implantando seu aplicativo no Heroku
Para ter uma implantação bem-sucedida de seu aplicativo no Heroku, você precisa configurar um arquivo requirements.txt . Para configurá-lo, execute o seguinte em seu CMD:
pip freeze > requirements.txt
Essa linha cria um arquivo .txt que contém todos os pacotes usados para servir ao seu projeto. O Heroku examina esse arquivo durante a implantação e instala esses pacotes automaticamente.
Outro arquivo importante que você precisa especificar é o Procfile . Isso informa ao Heroku os comandos a serem executados na inicialização do aplicativo. No entanto, você deve criar esse arquivo explicitamente criando um novo arquivo de texto denominado Procfile na raiz do projeto. Certifique-se de que este arquivo não tenha uma extensão de arquivo; caso contrário, não funcionará.
Para remover a extensão do arquivo do Procfile no Windows, abra a pasta no Explorador de Arquivos, clique em Exibir na barra de ferramentas superior e marque a caixa Extensões de nome de arquivo . Você verá as extensões para todos os arquivos, incluindo a extensão .txt para Procfile . Clique com o botão direito em Procfile e escolha Renomear , depois simplesmente remova a extensão .txt e pressione Enter .
Em seguida, abra o Procfile e adicione a seguinte linha, substituindo project_name pelo nome que se aplica ao seu projeto:
web: gunicorn project_name.wsgi
Opcionalmente, você também pode criar um arquivo runtime.txt . Abra o arquivo e especifique a versão do Python da seguinte maneira:
python-3.7.6
É assim que você informa ao Heroku a versão do Python em que seu aplicativo é executado. Se você não especificar este arquivo, o Heroku usará apenas a versão mais recente do Python por padrão.
Em seguida, no prompt de comando, faça login em sua conta do Heroku executando este comando:
heroku login
Esse comando abre seu navegador padrão na página de login do Heroku, onde você pode fornecer suas credenciais de login.
Para criar um aplicativo no Heroku, digite a seguinte linha:
heroku create ademosapp2
Substitua ademosapp2 pelo nome de seu aplicativo preferido. Se o nome do aplicativo selecionado estiver em uso, você verá uma mensagem solicitando que escolha um novo nome.
Na página de login, clique no logotipo do Heroku para fazer login no painel do Heroku. Agora você deve ver o aplicativo que acabou de criar.
Em seguida, abra seu editor de texto preferido no local do seu projeto e vá para settings.py do seu projeto . No arquivo settings.py , altere o Host Permitido para [*] --- isso torna seu aplicativo acessível a qualquer host global.
Agora vá para o painel do Heroku e clique no aplicativo recém-criado, seguido de configurações . Nas configurações, role para baixo e clique em Adicionar buildpack . Em seguida, selecione Python como seu buildpack e clique em Salvar alterações .
Em seguida, volte para o seu CMD e execute o seguinte código para instalar o Heroku em seu projeto:
pip install django-heroku
Agora, adicione o pacote recém-instalado ao arquivo requirements.txt executando:
pip freeze > requirements.txt
Em seguida, abra o arquivo settings.py do seu projeto e digite:
import django_heroku
Além disso, na última linha de settings.py , ative django-heroku adicionando:
django_heroku.settings(locals()) #ensure that you comment this line out after deployment
Feito isso, inicie um repositório remoto digitando o seguinte em sua linha de comando:
heroku init
Em seguida, crie um repositório de aplicativos Heroku executando:
heroku git:remote -a ademosapp2 #replace ademosapp2 with your app's name
Para verificar os arquivos que precisam ser confirmados, execute:
git status
Em seguida, digite o seguinte comando para adicionar todas as alterações ao seu repositório:
git add --all
Assim que as alterações forem adicionadas, envie suas alterações para o Heroku executando o comando:
git commit -m "initial-commit"
Observe que "initial-commit" pode usar qualquer nome que você quiser.
Em seguida, você deve desativar o collectstatic usando o seguinte:
heroku config:set DISABLE_COLLECTSTATIC=1
Caso contrário, você pode ter problemas durante o processo de implantação.
Para finalmente enviar seus arquivos para o repositório Heroku, use o comando:
git push heroku master
Isso envia todos os seus arquivos para o Heroku e torna o aplicativo acessível de qualquer lugar. Para ver seu aplicativo recém-implantado, acesse https://app_name.herokuapp.com em seu navegador, substituindo app_name pelo nome de seu aplicativo.
O Heroku pode hospedar um aplicativo que não funciona em Python?
Você pode hospedar uma variedade de compilações de aplicativos no Heroku; os mesmos processos Git que cobrimos aqui funcionam para outras linguagens além do Python. Você só precisa fazer pequenas alterações, como redefinir seu pacote de construção.
Embora o Heroku ofereça hospedagem gratuita, todos sabemos que o conteúdo gratuito apresenta algumas limitações. No entanto, se você não espera que seu site receba muito tráfego, a hospedagem gratuita no Heroku pode ser uma boa opção.