Executando verificação de segurança...
23

[Tutorial] Como hospedar um app Django na Vercel?

Neste artigo, vou explicar como você pode hospedar sua aplicação web feita em Django utilizando o Vercel de graça . Antes de começar, espero que você já tenha um aplicativo Django ( ainda não? olhe a documentação aqui) em mãos, por isso, vou abordar somente a criação de arquivos adicionais de configuração que são necessários para hospedagem.

requirements.txt

É no arquivo requirements.txt que contém uma série de dependências/libs que são necessárias para um programa Python.

Para você gerar um requirements.txt de seu projeto use o comando pip freeze:

pip freeze > requirements.txt

Após isso, um novo arquivo será gerado.

build_files.sh

No arquivo build_files, podemos realizar ações de construção e configuração necessárias para preparar nosso app para produção. Nesse caso, escolhi realizar duas etapas com ele: criação de migrações e coleta de arquivos estáticos.

#!/usr/bin/env bash

echo "Migrando banco de dados..."
python3 manage.py makemigrations --noinput
python3 manage.py migrate --noinput

echo "Coletando arquivos estáticos..."
python3 manage.py collectstatic --noinput

vercel.json

Por último, nós temos o vercel.json que também é um arquivo que deve ser criado para configuração do seu projeto , só que nesse caso, serve como configuração para a vercel. Aqui está o nosso arquivo:

{
  "version": 2,
  "builds": [
    {
      "src": "{projeto}/wsgi.py",
      "use": "@vercel/python",
      "config": {
        "maxLambdaSize": "15mb",
        "runtime": "Python3.9"
      }
    },
    {
      "src": "build_files.sh",
      "use": "@vercel/static-build",
      "config": {
        "distDir": "staticfiles_build"
      }
    }
  ],
  "routes": [
    {
      "src": "/static/(.*)",
      "dest": "/static/$1"
    },
    {
      "src": "/(.*)",
      "dest": "{projeto}/wsgi.py"
    }
  ]
}

Todos os campos com {projeto} devem ser substituídos pelo nome do seu projeto.

Após todo o processo de configuração, você já pode subir sua aplicação em um repositório no GitHub, por exemplo, e conectar o mesmo com a vercel.

Espero que tenha ajudado : )

1
1

isso serve também para aplicações django puramente backend?

Em que sentido você quis dizer? Uma aplicação Django é uma aplicação backend . No contexto que usei, seu app deve ter no mínimo um template html para renderizar e um arquivo estático ( css ) para estilizar a página .

1

basicamente estou utilizando o django como server side enquanto estou fazendo um frontend react separadamente. então eu poderia dar deploy na vercel o django como server side ou é melhor utilizar serviços padrão de nuvem mesmo?(aws/azure)

1

Entendi , aí vai de sua escolha .

Eu optei pela vercel por causa da questão de ser de graça e não precisar adicionar nenhum cartão. Se você for optar pelo aws/azure, a unica coisa que não irá te servir é o arquivo vercel.json. Mas o processo de configuração de arquivos é basicamente o mesmo. É bom você dá uma pesquisada direitinho em relação ao seu caso.