Criando sua primeira aplicação Django com Python em 2026

Este tutorial mostra, passo a passo, como criar sua primeira aplicação Django numa hospedagem com cPanel — da instalação do Python à configuração dos arquivos estáticos, com o projeto no ar ao final.

Criando sua primeira aplicação Django

Este tutorial usa o Python 3.13 e o Django 5.2 LTS como referência. Novas versões são habilitadas periodicamente no painel, e você pode escolher versões anteriores durante a criação da aplicação — o Django 4.2 LTS, por exemplo, ainda recebe suporte de segurança.

Primeiramente, acesse seu painel de controle cPanel e procure a opção “Setup Python App” na guia Software.

Em seguida, você encontrará a seguinte tela com a opção “CRIAR APLICAÇÃO”:

Em “Python version”, escolha a versão do Python que deseja. Os prints deste tutorial foram feitos com a 3.10, mas o processo é idêntico nas versões atuais.

No campo “Raiz do aplicativo”, deverá inserir o nome do seu aplicativo. Nesse exemplo iremos utilizar o nome “meuapp”.

Os campos “Arquivo de inicialização do aplicativo” e “Application Entry point” devem permanecer vazias, pois serão preenchidas automaticamente pelo cPanel.

Na opção “Passenger log file” poderá definir o caminho do arquivo que receberá os logs de sua aplicação. Em nosso exemplo, iremos escolher o diretório “logs”.

Por fim, basta clicar em CRIAR e sua aplicação será criada.

Como podemos ver os campos “Arquivo de inicialização do aplicativo” e “Application Entry point” foram preenchidos de forma automática pelo cPanel. 

Instalar o Django na aplicação Python

O próximo passo é instalar o Django nesta aplicação Python. Caso você seja um usuário avançado e queira usar um cliente de SSH de sua preferência, basta acessar o servidor por SSH e utilizar o comando que está em “Enter to the virtual environment.To enter to virtual environment, run the command:” no SSH para entrar no virtualenv e poder instalar tanto o Django quanto os módulos que desejar.

É possível também manipular sua conta via SSH pelo próprio painel de controle, utilizando a ferramenta Terminal e será dessa forma que iremos mostrar nesse exemplo. O primeiro passo é copiar o comando para entrar no virtualenv:

Agora que o comando foi copiado, vamos abrir o terminal :

Ao abrir o terminal, será exibido a tela lhe permitindo inserir comandos e basta colar o comando que foi copiado da tela de projetos conforme o print abaixo:

Quando teclar enter no final da linha desse comando, já estará no virtualenv e irá reparar que o nome do projeto e a versão do python estarão logo no inicio da linha:

No print acima, temos também um exemplo de uso do comando “pwd” que exibe na tela o diretório que está visualizando no momento. Pode perceber que já está no diretório do seu projeto. O comando “ls” exibido acima mostra o conteúdo gerado automaticamente pelo cPanel. 

O próximo passo é a instalação do django usando o comando “pip install django”:

Criar um projeto

Agora que temos uma aplicação Python instalada com o Django, precisamos criar um projeto. Para isso, vamos usar o comando “django-admin startproject meuapp .” Segue print de exemplo:

Observação importante: No final do comando “django-admin startproject meuapp .” há um ponto no final, que significa que o projeto será instalado no diretório atual. Sem o ponto, será criado um subdiretório extra que pode gerar confusão.

Vamos ver agora  os novos arquivos e diretórios criados pelo comando:

Podemos ver todos os arquivos e diretórios criados pelo django-admin. O próximo passo agora é atualizar o arquivo de inicialização da aplicação para o wsgi.py do django. Para isso, devemos voltar na tela de projetos do cpanel e editar o nosso projeto:

Devemos agora ajustar o arquivo de inicialização, inserindo o caminho do wsgi.py do projeto django:

A partir desse momento o site django já deverá estar online. Para um teste, basta acessar o site em outra aba do navegador:

Quando acessar o site, irá ver a tela do print acima. Essa tela informa que não há um host configurado com permissão para esse aplicativo. Para corrigir essa configuração, deverá acessar o gerenciador de arquivos do cPanel e editar o arquivo settings.py do seu projeto:

Ao clicar no botão “Edit” será exibido o conteúdo do arquivo settings.py e deverá localizar a linha do ALLOWED_HOSTS e irá reparar que ela está sem conteúdo:

Basta inserir o nome de seu site nessa parte com e sem www seguindo o modelo abaixo:

ALLOWED_HOSTS = ['siteexemplo.h-br.com','www.siteexemplo.h-br.com']
⚠️ Antes de colocar em produção: DEBUG = False

No mesmo arquivo settings.py, localize a linha DEBUG = True e troque por False. Com o DEBUG ligado, qualquer erro no site exibe ao visitante o caminho completo dos seus arquivos, as variáveis de ambiente, a configuração do banco de dados e parte da SECRET_KEY.

É a falha de segurança mais comum em projetos Django publicados. Durante o desenvolvimento o DEBUG ajuda; em produção, não.

Ao final da edição deverá clicar no botão “Salvar alterações” no canto superior direito.

Volte no cpanel na tela de seu aplicativo e de restart na aplicação para que as atualizações sejam aplicadas. 

Agora basta testar o acesso em seu site. Estando tudo correto, ele deverá exibir a tela de demonstração do django como o print abaixo:

Agora devemos configurar o caminho dos arquivos estáticos de seu projeto. Para isso, volte no gerenciador de arquivos. O diretório publico de sua conta é o public_html. Nesse exemplo, iremos criar um diretório dentro dele de nome “static” conforme os print’s abaixo:

Agora devemos configurar o caminho no arquivo de configuração, para isso, edite novamente o arquivo settings.py:

Deverá ir até o final do arquivos e inserir a seguinte linha:

STATIC_ROOT = '/home/siteexem/public_html/static'

Observação importante: Nesse exemplo estamos usando o caminho de nossa conta de teste. Em seu caso precisará definir o caminho correto de sua conta no servidor. 

Depois que inserir a linha, clique em salvar alterações. A próxima etapa é rodar o comando para coletar a  nova configuração de caminho dos arquivos estáticos. Esse procedimento deve ser feito via terminal:

Agora o próximo passo é testar. Volte no gerenciador de arquivos, entre no diretório public_html/static e crie um arquivo teste conforme o print abaixo:

Depois que criar o arquivo dentro da pasta static, vamos edita-lo e inserir um conteúdo:

Depois que inserir o texto, clique no botão “salvar alterações” e faça um teste de acesso via navegador. Em nosso exemplo o link ficou da seguinte forma:

E Voila! Seu projeto já está pronto para receber seu conteúdo!

Perguntas frequentes

Preciso de VPS para hospedar Django?

Não necessariamente. Uma hospedagem compartilhada com cPanel e Setup Python App — como a usada neste tutorial — roda Django perfeitamente para sites institucionais, blogs, painéis internos e aplicações de tráfego moderado. O VPS passa a fazer sentido quando você precisa de acesso root, de bibliotecas que exigem compilação, de Celery com workers em background, ou quando o tráfego começa a esbarrar nos limites do plano.

Qual versão do Python e do Django devo escolher?

Use a versão mais recente do Python disponível no painel e uma versão LTS do Django. As LTS recebem correções de segurança por três anos, o que evita ter que migrar o projeto no meio do caminho. Versões intermediárias trazem recursos novos mas têm ciclo de suporte curto.

Por que meu site Django mostra “DisallowedHost”?

Porque o domínio que você acessou não está na lista ALLOWED_HOSTS do settings.py. É uma proteção do próprio Django contra ataques de cabeçalho Host. Acrescente seu domínio com e sem www, salve, e reinicie a aplicação no painel — o reinício é a parte que muita gente esquece.

Preciso reiniciar a aplicação depois de cada alteração?

Sim, para mudanças em arquivos Python — settings.py, views.py, models.py. O Passenger mantém o processo em memória, então a alteração só passa a valer depois do restart, feito pelo botão na tela da aplicação no cPanel. Alterações em templates HTML e arquivos estáticos não precisam.

Meus arquivos CSS e JavaScript não carregam. O que fazer?

Provavelmente falta rodar o collectstatic. O Django não serve arquivos estáticos em produção — ele espera que estejam reunidos numa pasta pública, definida no STATIC_ROOT. Depois de configurar o caminho, rode python manage.py collectstatic pelo terminal e reinicie a aplicação.

O que é o ponto no final do comando django-admin startproject meuapp .?

Ele indica que o projeto deve ser criado no diretório atual. Sem o ponto, o Django cria uma pasta extra com o mesmo nome, resultando em meuapp/meuapp/ — o que funciona, mas confunde os caminhos e é a causa mais comum de erro no Application startup file.

Preciso mudar o DEBUG para False?

Sim, antes de o site ficar público. Com DEBUG = True, qualquer erro exibe ao visitante o caminho completo dos seus arquivos, as variáveis de ambiente, a configuração do banco e parte da SECRET_KEY. É a falha de segurança mais comum em projetos Django publicados.

Posso usar banco de dados MySQL em vez do SQLite?

Sim, e para produção é o recomendado. O SQLite vem configurado por padrão e funciona para testes, mas grava num arquivo único e não lida bem com escritas simultâneas. Crie um banco MySQL no cPanel, instale o mysqlclient no virtualenv, e aponte o DATABASES do settings.py para ele.

Como instalo bibliotecas adicionais no projeto?

Pelo terminal, dentro do virtualenv. Entre no ambiente com o comando que o painel fornece e use pip install nome-da-biblioteca. Instalar fora do virtualenv não funciona — a aplicação não vê o pacote. Vale também manter um requirements.txt no projeto, com pip freeze > requirements.txt.

Onde vejo os erros da minha aplicação?

No arquivo de log do Passenger, cujo caminho você definiu ao criar a aplicação — no exemplo deste tutorial, o diretório logs. É o primeiro lugar a olhar quando o site retorna erro 500 e nenhuma mensagem aparece na tela, o que é justamente o comportamento esperado com DEBUG = False.

Posso rodar mais de uma aplicação Python na mesma conta?

Sim. Cada aplicação criada no Setup Python App tem seu próprio virtualenv e sua própria versão do Python, e pode responder num domínio ou subdomínio diferente. O limite prático é o de recursos do plano, não do painel.

Django rodando sem configurar servidor

O Setup Python App que você viu neste tutorial vem em todos os planos da Homehost — com virtualenv por aplicação, várias versões de Python disponíveis, terminal SSH pelo painel e MySQL incluído. Servidor no Brasil, SSL grátis e suporte em português para quando o log do Passenger não ajudar.

Ver planos de hospedagem Django

Conclusão

Publicar um projeto Django numa hospedagem com cPanel é menos trabalhoso do que a documentação oficial sugere — o Setup Python App resolve o virtualenv, o Passenger cuida do WSGI, e o que resta são três ajustes no settings.py.

São esses três que fazem toda a diferença. O ALLOWED_HOSTS, sem o qual o Django recusa qualquer requisição. O STATIC_ROOT com o collectstatic, sem os quais o site carrega sem estilo nenhum. E o DEBUG = False, sem o qual seu servidor expõe os próprios caminhos e configurações a qualquer visitante que provoque um erro.

Dois hábitos que poupam tempo depois: reinicie a aplicação sempre que alterar um arquivo Python, porque o Passenger mantém o processo em memória e não recarrega sozinho. E olhe o log do Passenger antes de qualquer outra coisa quando aparecer um erro 500 — com o DEBUG desligado, a tela não vai te dizer nada, e o log vai.

A partir daí o projeto é seu. O ambiente está pronto, e o que vem depois é código.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Hugo Cabral

Hugo Cabral

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!