31.01.2025

Como configurar um sistema para um projeto Django (Postgres; Ngnix; Gunicorn) no Linux Ubuntu 20.04

Introdução

O Django é uma estrutura gratuita e de código aberto para o desenvolvimento de aplicativos da Web em Python. Ele fornece ferramentas poderosas para desenvolver sites e aplicativos da Web completos. Ele permite que os desenvolvedores criem aplicativos de forma rápida e eficiente sem perder a qualidade.

O Django é famoso por sua versatilidade e potência no desenvolvimento da Web. É uma estrutura avançada para a criação de aplicativos em Python, que ajuda a reduzir o tempo de desenvolvimento com sua biblioteca de ferramentas e módulos. Também é conhecido por seus recursos avançados de criação de modelos e construção automática de URLs. Essa estrutura também oferece boa segurança para os aplicativos, pois verifica automaticamente os dados de entrada e evita ataques.

Comparação com outras estruturas

O Postgres é conhecido por sua alta confiabilidade e desempenho. Ele também tem recursos avançados para análise de dados, incluindo funções analíticas e ferramentas para lidar com a geoespacialização. Há também uma grande variedade de plug-ins que podem complementar sua funcionalidade.

O Gunicorn é conhecido por sua facilidade de uso e alto desempenho. Ele é um gerenciador de processos Python simples que pode lidar com várias solicitações em um único servidor. O Gunicorn tem muitos recursos incorporados, como suporte ao protocolo HTTP/1.1, reinicialização automática e dimensionamento de vorkers. Ele também pode ser usado em combinação com outras estruturas da Web, como Django e Flask.

O Nginx é um dos servidores da Web mais populares e confiáveis. É fácil de instalar e configurar, tem alto desempenho e baixo uso de recursos, oferece suporte a aplicativos da Web e sites dinâmicos e tem muitos recursos diferentes, incluindo envio de conteúdo estático, proxy, redirecionamento de URL e roteamento. Ele pode ser usado principalmente para lidar com o tráfego da Web, bem como para tolerância a falhas e alto desempenho.

Começando

Atualize os pacotes de software.

sudo apt update

Instale o software a seguir.

sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl

Configurar o banco de dados

Faça login no Postgres.

sudo -u postgres psql

Comando para criar um banco de dados para o projeto.

CREATE DATABASE "yournameproject";

Crie um banco de dados, um usuário e otimize nosso banco de dados para que ele funcione mais rápido.

CREATE DATABASE "yournameproject"

.

O banco de dados foi criado e precisamos fazer alterações em determinados parâmetros.

CREATE USER "YourUsername" WITH PASSWORD 'password';

O usuário foi criado com sucesso e decidi otimizar o "DB" alterando os parâmetros para acelerar o nosso "DB".

ALTER ROLE "Yourproject" SET timezone TO 'UTC';
ALTER ROLE "Yourproject" SET default_transaction_isolation TO 'read committed';
ALTER ROLE "Yourproject" SET client_encoding TO 'utf8';

Esses parâmetros são criados para fornecer ao usuário uma conta para se conectar ao banco de dados com uma senha.

Em seguida, a função do usuário será configurada com um fuso horário padrão de UTC, um isolamento de transação padrão de "Read Completely" e uma codificação de cliente padrão de UTF-8.

Concedido acesso ao usuário para administrar o "DB".

GRANT ALL PRIVILEGES ON DATABASE "yourproject" TO "myprojectuser";

Criando um espaço de trabalho para o projeto

Criei um "DB" e agora podemos passar para os requisitos restantes do projeto. Para tornar as coisas um pouco mais fáceis, configurei todos os requisitos de que precisamos em um ambiente virtual.

Vamos escrever esses comandos.

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

Depois de instalar a ferramenta "virtualenv", começo a modelar nosso projeto.
Criei um diretório no qual armazenaremos nossos arquivos para o projeto e navegarei até ele

mkdir ~/yourprojectdir
cd ~/myprojectdir

No diretório, crie um ambiente virtual.

virtualenv yourprojectenv

virtualenv é um comando que permite criar ambientes isolados para diferentes projetos e usar diferentes versões de bibliotecas e aplicativos.

Isso permite que a mesma pilha de tecnologia seja mantida para todos os projetos da organização, reduzindo o risco de incompatibilidades e bugs.

Esse diretório conterá imediatamente a versão local do Python e o sistema de gerenciamento de pacotes.
Antes de atribuirmos requisitos ao nosso projeto, precisamos executar o ambiente virtual. Digite este comando.

source yourprojectenv/bin/activate

A linha de comando será alterada, mostrando que agora você está executando o ambiente virtual do Python. Ela será semelhante a esta.


Ao executar o ambiente virtual, instale os componentes necessários.

pip install django gunicorn psycopg2-binary

Criação do projeto

Um diretório de projeto já foi criado para a estrutura, portanto, precisamos especificar o caminho para a inicialização, porque o segundo diretório contém o subdiretório com o código do script de controle dentro dele.

django-admin startproject yourproject ~/yourprojectdir

Depois disso, você precisará alterar alguns parâmetros no arquivo de projeto gerado. Abra o arquivo de configurações com qualquer editor de texto.

nano ~/yourprojectdir/yourproject/settings.py

Agora precisamos alterar as configurações.

Em seguida, role a tela para baixo e encontre a seção que fornece a senha, cujo nome é "DB".

Procure também a string DATABASES, configure essa string para seus dados.

Role para baixo e adicione o parâmetro para especificar onde você deseja armazenar os arquivos estáticos.

Configuração final

Usando os scripts de gerenciamento, moverei o esquema "DB".

~/yourprojectdir/manage.py
~/yourprojectdir/manage.py migrate

Crie um usuário administrativo para o projeto.

~/yourprojectdir/manage.py createsuperuser

Coletou todo o conteúdo estático no diretório fornecido.

~/myprojectdir/manage.py collectstatic

O comando precisa ser validado. Depois disso, todos os arquivos serão movidos para o diretório "static" do projeto.

Abra também a porta que será usada para o projeto.

sudo ufw allow 2222

Check

Verifique nosso projeto iniciando o servidor da estrutura.

~/myprojectdir/manage.py runserver your_ip:2222

Vá para o navegador da Web para verificar se a estrutura funciona.

Após a autorização no recurso da Web, você será direcionado ao painel de controle.

Saída

Nesta postagem, mostrei como preparar o sistema Ubuntu 20.04 para iniciar um projeto Django com um banco de dados Postgres, um servidor Web Gunicorn e um proxy Ngnix configurado.