Aprenda como ativar efetivamente o modo de manutenção em seu aplicativo Django enquanto garante uma experiência perfeita para seus usuários.

Colocar seu aplicativo Django no modo de manutenção é crucial ao realizar atualizações, resolver problemas técnicos ou fazer alterações significativas em seu aplicativo.

Ao restringir temporariamente o acesso do usuário e exibir uma página de manutenção, você pode comunicar mensagens importantes, garantir um processo de atualização tranquilo e evitar possíveis conflitos ou perda de dados.

Seja você um desenvolvedor ou um administrador de sistema, entender como implementar o modo de manutenção no Django permitirá que você mantenha um aplicativo confiável e fácil de usar.

Como usar o pacote Django-Maintenance-Mode

Devido ao seu amplo suporte à comunidade, o Django oferece uma ampla variedade de pacotes que podem aprimorar significativamente seu processo de desenvolvimento, permitindo um trabalho mais rápido e eficiente. Esses pacotes aliviam o fardo de tarefas repetitivas, garantindo uma experiência mais tranquila para você como desenvolvedor.

instagram viewer

Um dos pacotes fornecidos pelo Django é o Django-maintenance-mode pacote que você pode usar para colocar seu aplicativo Django no modo de manutenção. O Django-maintenance-mode pacote funciona exibindo uma página para o 503Código de status HTTP. Você pode usar Django-maintenance-mode em seu aplicativo com as seguintes etapas.

Passo 1: Instale o Django-Maintenance-Mode em seu ambiente virtual

  1. Na tua ambiente virtual do projeto, instale o pacote com o gerenciador de pacotes pip do Python. Execute este comando em seu interface de linha de comando (CLI):
    pip install django-maintenance-mode
  2. Depois de instalar o pacote, adicione Modo de manutenção para o INSTALLED_APPS lista em seu settings.py arquivo:
    INSTALADO_APPS = [
    # alguns outros aplicativos,
    'Modo de manutenção',
    ]
  3. Em seguida, adicione o middleware para Django-maintenance-mode para o MIDDLEWARE lista em seu settings.py arquivo:
    MIDDLEWARE = ​​[
    # algum outro middleware de Django,
    'maintenance_mode.middleware. MaintenanceModeMiddleware',
    ]

Etapa 2: criar um modelo HTML para exibir a mensagem do modo de manutenção

Para o Django-maintenance-mode pacote para exibir uma página de erro 503, ele procura por um 503.html arquivo de modelo no modelos diretório. Para configurar isso, faça o seguinte:

  1. Crie uma pasta chamada modelos em seu diretório raiz.
  2. Abra seu recém-criado modelos pasta e crie um arquivo chamado 503.html.
  3. Na tua settings.py arquivo, localize o MODELOS configurações e configurar o DIRS liste assim:
    'DIRS': [BASE_DIR/'modelos'],
  4. Abre o teu 503.html arquivo e escreva o código HTML para renderizar uma mensagem de erro para seus usuários. Aqui está um código simples que você pode usar:
    html>
    <html>
    <cabeça>
    <metaconjunto de caracteres="UTF-8">
    <título>503 serviço indisponíveltítulo>
    <estilo>
    corpo {
    família da fonte: Arial, sem serifa;
    cor de fundo: #f5f5f5;
    margem: 0;
    preenchimento: 0;
    }

    .container-503 {
    largura máxima: 600px;
    margem: 100px automático;
    alinhamento de texto: centro;
    }

    h1 {
    tamanho da fonte: 48px;
    cor: #333333;
    margem inferior: 20px;
    }

    p {
    tamanho da fonte: 18px;
    cor: #666666;
    margem inferior: 30px;
    }

    .btn-503 {
    exibição: bloco em linha;
    preenchimento: 12px 24px;
    cor de fundo: #007bff;
    cor: #ffffff;
    decoração de texto: nenhum;
    raio da borda: 4px;
    tamanho da fonte: 18px;
    }
    estilo>
    cabeça>
    <corpo>
    <divaula = "contêiner-503">
    <h1>503 serviço indisponívelh1>
    <p>
    Ops! No momento, estamos trabalhando em algumas atualizações.
    Pedimos desculpas pelo inconveniente e agradecemos sua paciência.
    p>
    <p>Visite o site mais tarde ou entre em contato com nossa equipe de suportep>
    <ahref = "mailto: [email protected]"aula = "btn-503">
    Entre em contato com o suporte
    a>
    div>
    corpo>
    html>

Etapa 3: ativar o modo de manutenção e reiniciar o servidor

Na tua settings.py arquivo, adicione este código para ativar o modo de manutenção:

MANUTENÇÃO_MODE = Verdadeiro

Reinicie seu servidor de desenvolvimento executando isto em sua CLI:

python manage.py runserver

Ao navegar em seu site, você verá a página de manutenção que criou.

Como ignorar o site de administração no modo de manutenção do Django

Para permitir que seu site de administração continue funcionando mesmo no modo de manutenção, o Django-maintenance-mode fornece uma configuração chamada MAINTENANCE_MODE_IGNORE_ADMIN_SITE. Você deve adicionar esta configuração em seu settings.py arquivo e configurá-lo para Verdadeiro:

MAINTENANCE_MODE_IGNORE_ADMIN_SITE = Verdadeiro

O valor padrão da configuração acima é Falso; portanto, seu site de administração será afetado pela página do modo de manutenção se você não configurá-lo para Verdadeiro.

Como ignorar uma exibição baseada em função específica no modo de manutenção do Django

O Django-maintenence-mode O pacote fornece um decorador para impedir uma determinada exibição ou página - como o Sobre página do seu site—de entrar no modo de manutenção. Para fazer isso, primeiro importe o decorador para o seu views.py módulo:

de Maintenance_mode.decorators importar force_maintenance_mode_off

Depois de importar o decorador, adicione-o à sua exibição assim:

@force_maintenance_mode_off
defview_name(solicitar):
# executa a lógica de exibição
# nunca retorna a resposta 503

Depois de implementar o decorador corretamente, a URL dessa exibição específica ficará acessível para seus usuários.

Como ignorar uma exibição baseada em classe específica no modo de manutenção do Django

Ignorar uma visão baseada em classe é semelhante a ignorar uma visão baseada em função. No entanto, a melhor abordagem é fazê-lo no urls.py arquivo.

Primeiro, você precisa importar o force_maintenance_mode_off decorador em seu aplicativo urls.py arquivo. Então você precisa incluí-lo em seu caminho de URL. Aqui está um exemplo:

de Maintenance_mode.decorators importar force_maintenance_mode_off
de .Visualizações importar Sua visão

urlpadrões = [
# nunca retorna a resposta 503
caminho('', force_maintenance_mode_off (YourView.as_view()), nome='minha visão'),
]

Certifique-se de importar também outras coisas necessárias, como caminho e sua visão baseada em classe.

Como ativar o modo de manutenção para uma exibição baseada em função específica

  1. Para ativar o modo de manutenção para uma única exibição, primeiro desative o modo de manutenção em seu settings.py arquivo fazendo isso:
    MANUTENÇÃO_MODE = Falso
  2. A seguir, em seu views.py, você deve importar o force_maintenance_mode_on decorador e adicione-o à sua exibição:
    de Maintenance_mode.decorators importar force_maintenance_mode_on

    @force_maintenance_mode_on
    defview_name(solicitar):
    # Execute a lógica de exibição
    # Sempre retorna a resposta 503

Como ativar o modo de manutenção para uma exibição baseada em classe específica

  1. Primeiro, você deve desativar o modo de manutenção em seu settings.py arquivo:
    MANUTENÇÃO_MODE = Falso
  2. A seguir, em seu urls.py, você deve importar o force_maintenance_mode_on decorador e adicione-o ao caminho de URL necessário:
    de Maintenance_mode.decorators importar force_maintenance_mode_on
    de .Visualizações importar Sua visão

    urlpadrões = [
    # Sempre retorna a resposta 503
    caminho('', force_maintenance_mode_on (YourView.as_view()), nome='minha visão'),
    ]

Como usar um nome de modelo diferente para o modo de manutenção do Django

Por padrão, o Django-maintenance-mode pacote procura por um templates/503.html modelo. Você pode decidir substituir isso no settings.py arquivo.

Suponha que você tenha uma pasta separada para lidar com erros em seu aplicativo; você vai querer incluir o seu 503.html modelo nesta pasta. Portanto, seu modelo estará em templates/errors/503.html.

A configuração padrão para esta configuração é esta:

MAINTENANCE_MODE_TEMPLATE = "503.html"

Para substituí-lo, você deve adicionar um caminho diferente apontando para sua página de erro. Aqui está um exemplo:

MAINTENANCE_MODE_TEMPLATE = "erros/503.html"

Você também pode alterar o nome do arquivo, se quiser, e tudo funcionará bem se você adicionar as configurações necessárias.

Além das configurações acima, o Django-maintenance-mode O pacote fornece outras configurações interessantes para ajudá-lo a personalizar o modo de manutenção do seu aplicativo para sua necessidade específica. Você pode ler sobre essas configurações no Django-maintenance-mode documentação.

Use o modo de manutenção para garantir atualizações contínuas e uma experiência de usuário aprimorada em seu aplicativo

Aproveitar o modo de manutenção em seu aplicativo pode facilitar as coisas para você e seus usuários. Desativando temporariamente o acesso a todo ou parte do seu aplicativo durante atualizações ou tarefas de manutenção, você pode minimizar interrupções e erros que possam surgir de interações simultâneas do usuário.

O uso do modo de manutenção não apenas permitirá que você execute as atualizações necessárias com eficiência, mas também demonstra o compromisso de fornecer uma experiência tranquila e ininterrupta para seus usuários.

Além do modo de manutenção, você também pode fornecer modelos personalizados para outros erros no Django.