Como Instalar Django em um Servidor de Hospedagem: Um Guia Completo Passo a Passo
Django é um framework web Python de alto nível projetado para encorajar o desenvolvimento rápido e o design limpo e pragmático. Continua sendo uma das escolhas mais populares para construir aplicações web escaláveis, seguras e mantíveis — desde blogs simples até plataformas empresariais complexas. Neste guia abrangente, vamos orientá-lo em cada etapa necessária para instalar Django em um servidor de hospedagem, desde a preparação do seu ambiente Linux até a execução do seu primeiro projeto e sua preparação para produção.
Por que escolher Django para sua aplicação web?
Antes de mergulhar no processo de instalação, vale a pena entender por que Django continua dominando o cenário de desenvolvimento web em Python:
- Baterias incluídas: Django vem com autenticação integrada, painel de administração, ORM, manipulação de formulários e recursos de segurança prontos para usar.
- Escalabilidade: Django alimenta plataformas de alto tráfego como Instagram e Pinterest.
- Design focado em segurança: Django protege contra vulnerabilidades comuns, incluindo injeção SQL, XSS, CSRF e clickjacking por padrão.
- Desenvolvimento rápido: Sua filosofia de convenção sobre configuração permite que os desenvolvedores lancem recursos mais rapidamente.
- Ecossistema massivo: Milhares de pacotes reutilizáveis e uma grande comunidade significam que soluções para quase qualquer problema já existem.
Para aproveitar ao máximo o Django, você vai querer um ambiente de servidor confiável. Um plano de VPS Hosting oferece o acesso root, recursos dedicados e flexibilidade que as aplicações Django exigem.
Pré-requisitos
Antes de começar o processo de instalação, certifique-se de que você tem o seguinte em vigor:
- Um servidor de hospedagem executando uma distribuição Linux (Ubuntu 20.04/22.04 ou Debian são recomendados)
- Acesso SSH ao servidor com privilégios sudo
- Python 3.8 ou superior (Python 3.10+ recomendado)
pip(gerenciador de pacotes do Python) instalado- Familiaridade básica com a linha de comando Linux
> Dica profissional: Se você estiver executando uma aplicação Django em produção, evite ambientes de hospedagem compartilhada. Um plano de VPS Hosting ou um Servidor Dedicado oferecerá o controle e desempenho que sua aplicação precisa.
Passo 1: Conectar ao seu servidor via SSH
Abra seu terminal e estabeleça uma conexão SSH com seu servidor de hospedagem:
ssh username@server_ipSubstitua username pelo seu nome de usuário do sistema real e server_ip pelo endereço IP público do seu servidor. Se você estiver usando uma porta SSH personalizada ou um arquivo de autenticação baseado em chave, ajuste o comando de acordo:
ssh -i /path/to/your/key.pem username@server_ipUma vez conectado, você terá uma interface de linha de comando para seu servidor onde pode começar o processo de configuração.
Passo 2: Atualizar seu sistema e instalar Python e pip
Manter seus pacotes do sistema atualizados é um primeiro passo crítico tanto para segurança quanto para compatibilidade.
Atualizar o índice de pacotes
sudo apt update && sudo apt upgrade -yInstalar Python 3 e pip
A maioria das distribuições modernas de Ubuntu e Debian vêm com Python 3 pré-instalado. Verifique sua versão do Python primeiro:
python3 --versionSe Python 3 não estiver instalado, ou você precisar de pip, instale-os com:
sudo apt install python3 python3-pip -yVerifique as instalações:
python3 --version
pip3 --versionVocê deve ver números de versão confirmando que ambas as ferramentas estão disponíveis.
Passo 3: Configurar um ambiente virtual Python
Usar um ambiente virtual não é apenas recomendado — é considerado uma prática recomendada para cada projeto Python. Os ambientes virtuais isolam as dependências do seu projeto da instalação Python em todo o sistema e de outros projetos no mesmo servidor, prevenindo conflitos de versão e mantendo seu ambiente limpo.
Instalar virtualenv
sudo pip3 install virtualenvAlternativamente, você pode usar o módulo venv integrado do Python (disponível em Python 3.3+):
sudo apt install python3-venv -yCriar seu diretório de projeto e ambiente virtual
Navegue até o diretório onde você deseja hospedar seu projeto, ou crie um novo:
mkdir myproject
cd myprojectAgora crie o ambiente virtual dentro do seu diretório de projeto:
virtualenv venvOu, usando o módulo venv integrado:
python3 -m venv venvAtivar o ambiente virtual
source venv/bin/activateUma vez ativado, seu prompt de comando mudará para mostrar o nome do ambiente virtual, por exemplo:
(venv) username@server:~/myproject$Todos os comandos pip install executados enquanto o ambiente virtual está ativo instalarão pacotes apenas dentro deste ambiente isolado. Para desativá-lo a qualquer momento, simplesmente execute:
deactivatePasso 4: Instalar Django
Com seu ambiente virtual ativo, instale Django usando pip:
pip install djangoPara instalar uma versão específica do Django (recomendado para produção para garantir compatibilidade):
pip install django==4.2Verifique a instalação:
django-admin --versionVocê deve ver o número da versão do Django instalado impresso no terminal.
Passo 5: Criar um novo projeto Django
Use a ferramenta de linha de comando django-admin integrada do Django para estruturar um novo projeto:
django-admin startproject myproject .> Nota: O ponto final (.) diz ao Django para criar os arquivos do projeto no diretório atual em vez de criar um subdiretório aninhado. Esta é uma estrutura mais limpa para a maioria das implantações.
Seu diretório de projeto agora conterá a seguinte estrutura:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.pymanage.py— Um utilitário de linha de comando para interagir com seu projeto Django.settings.py— O arquivo de configuração central do seu projeto.urls.py— A configuração de roteamento de URL.wsgi.py/asgi.py— Pontos de entrada para servidores web compatíveis com WSGI e ASGI.
Passo 6: Configurar as definições do banco de dados
Abra o arquivo settings.py para configurar sua conexão com o banco de dados:
nano myproject/settings.pyPadrão: SQLite (apenas desenvolvimento)
Por padrão, Django é configurado para usar SQLite, que é adequado para desenvolvimento e testes, mas não é recomendado para produção:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}Opção de produção: PostgreSQL
PostgreSQL é o banco de dados mais comumente recomendado para Django em produção. Primeiro, instale os pacotes necessários:
sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binaryEm seguida, atualize a configuração DATABASES em settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}Opção de produção: MySQL / MariaDB
Se você preferir MySQL ou MariaDB, instale o adaptador necessário:
sudo apt install default-libmysqlclient-dev -y
pip install mysqlclientEm seguida, configure a configuração DATABASES:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}Configurar ALLOWED_HOSTS
Enquanto estiver em settings.py, também atualize a configuração ALLOWED_HOSTS para incluir o endereço IP ou nome de domínio do seu servidor. Isto é necessário para que Django sirva solicitações em modo não-debug:
ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']Passo 7: Aplicar migrações do banco de dados
Django usa um sistema de migração para gerenciar alterações de esquema de banco de dados. Execute as migrações iniciais para criar todas as tabelas de banco de dados necessárias:
python manage.py migrateVocê verá uma saída listando cada migração sendo aplicada. Uma migração bem-sucedida se parece com:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
...Criar um superusuário (opcional, mas recomendado)
Crie uma conta de administrador para acessar a interface de administração integrada do Django:
python manage.py createsuperuserVocê será solicitado a inserir um nome de usuário, endereço de e-mail e senha.
Passo 8: Executar o servidor de desenvolvimento Django
Agora você pode iniciar o servidor de desenvolvimento integrado do Django para verificar sua instalação:
python manage.py runserver 0.0.0.0:8000Este comando vincula o servidor de desenvolvimento a todas as interfaces de rede disponíveis na porta 8000. Abra seu navegador da web e navegue até:
http://your_server_ip:8000Você deve ver a página de boas-vindas do Django — um foguete com a mensagem “A instalação funcionou com sucesso! Parabéns!”
Para acessar o painel de administração, navegue até:
http://your_server_ip:8000/admin> Importante: O servidor de desenvolvimento integrado do Django não é adequado para produção. É single-threaded, não otimizado para desempenho e carece de endurecimento de segurança. Sempre use um servidor web de nível de produção para implantações ao vivo.
Passo 9: Preparar Django para produção (recomendado)
Para implantações em produção, você precisa configurar uma pilha de servidor web adequada. A configuração mais comum e recomendada é Nginx + Gunicorn.
Instalar Gunicorn
Com seu ambiente virtual ativo:
pip install gunicornTeste se Gunicorn pode servir sua aplicação:
gunicorn --bind 0.0.0.0:8000 myproject.wsgiInstalar e configurar Nginx
sudo apt install nginx -yCrie um arquivo de configuração de bloco de servidor Nginx:
sudo nano /etc/nginx/sites-available/myprojectAdicione a seguinte configuração:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}Ative a configuração e reinicie o Nginx:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxColetar arquivos estáticos
Atualize settings.py com o diretório de arquivos estáticos:
STATIC_ROOT = BASE_DIR / 'staticfiles'Em seguida, colete todos os arquivos estáticos:
python manage.py collectstaticProteja sua aplicação com SSL
Para qualquer aplicação Django em produção, HTTPS é inegociável. Um Certificado SSL criptografa dados em trânsito entre seu servidor e seus usuários, protege informações sensíveis e é necessário para indicadores de confiança do navegador moderno. AlexHost oferece certificados SSL que se integram perfeitamente ao seu ambiente de hospedagem.
Considerações adicionais de produção
Variáveis de ambiente para configurações sensíveis
Nunca codifique valores sensíveis como SECRET_KEY, senhas de banco de dados ou chaves de API em settings.py. Use variáveis de ambiente:
pip install python-decoupleEm settings.py:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)Defina DEBUG como False em produção
DEBUG = FalseExecutar com DEBUG = True em produção expõe páginas de erro detalhadas e informações de configuração sensíveis a possíveis atacantes.
Configurar um nome de domínio
Se você ainda não registrou um domínio para seu projeto Django, Registro de domínio através do AlexHost facilita obter seu domínio apontado para seu servidor rapidamente, com gerenciamento DNS completo incluído.
Escolher a hospedagem certa para sua aplicação Django
O ambiente de hospedagem que você escolhe tem um impacto significativo no desempenho, confiabilidade e escalabilidade da sua aplicação Django. Aqui está um guia rápido:
| Caso de uso | Hospedagem recomendada |
|---|---|
| Desenvolvimento e testes | Hospedagem web compartilhada |
| Aplicações de produção pequenas a médias | VPS Hosting |
| Aplicações de alto tráfego ou com uso intensivo de recursos | Servidores dedicados |
| Aplicações Django integradas com aprendizado de máquina / IA | Hospedagem GPU |
Para a maioria dos projetos Django que estão entrando em produção, um plano de VPS Hosting oferece o equilíbrio ideal entre desempenho, controle e custo-efetividade. Você obtém acesso root, a capacidade de instalar qualquer pilha de software e recursos dedicados que a hospedagem compartilhada não pode fornecer.
Solução de problemas de instalação comum do Django
pip: command not found
Instale pip manualmente: sudo apt install python3-pip -y
django-admin: command not found
Seu ambiente virtual pode não estar ativado. Execute source venv/bin/activate e tente novamente.
Porta 8000 não acessível
Verifique as regras de firewall do seu servidor. No Ubuntu com UFW:
sudo ufw allow 8000
sudo ufw reloadConexão com banco de dados recusada
Verifique se seu serviço de banco de dados está em execução:
sudo systemctl status postgresql
# or
sudo systemctl status mysqlALLOWED_HOSTS Erro
Certifique-se de que o endereço IP ou nome de domínio do seu servidor está listado na configuração ALLOWED_HOSTS em settings.py.
on All Hosting Services
