Может ли команда управления Django определить, когда сервер запущен?

У меня есть команда управления, которая выполняет некоторые манипуляции с базой данных, поэтому я не хочу, чтобы она выполнялась, пока сервер работает. Есть ли способ определить, запущен ли сервер, по команде управления

Нет, команда управления Django напрямую определяет, запущен ли сервер самостоятельно.

В командах управления Django нет встроенной поддержки этого, но вы всегда можете использовать ping:

import os
from django.core.management.base import BaseCommand, CommandError


def host_is_up(host):
    # mac OS/unix
    command = f'ping -c 1 "{host}"'

    # Windows
    command = f'ping -n 1 "{host}"'

    return os.system(command) == 0
    

class Command(BaseCommand):
    def handle(self, *args, **options):
        host = '192.168.x.x:8000'

        if host_is_up(host):
            raise CommandError(f'The host: {host} is running')
        
        do_stuff()
Вернуться на верх