Как запустить функцию при запуске до обработки запросов в Django?

Я хочу запускать некоторый код при старте моего Django-сервера, чтобы очистить его от предыдущего завершения работы сервера. Как я могу запустить некоторый код один и только один раз при запуске, прежде чем сервер обработает какие-либо запросы. В это время мне нужно получить доступ к базе данных.

Я прочитал в Интернете несколько вещей, которые кажутся немного устаревшими, а также не гарантируют, что будут запущены только один раз.

This is often done with the .ready() method [Django-doc] of any of the AppConfig classes [Django-doc] of an installed app. So if you have an app named app_name, you can work with:

# app_name/apps.py

from django.apps import AppConfig


class MyAppConfig(AppConfig):
    # …

    def ready(self):
        # my management command
        # …

Это выполнит после того, как загрузятся модели всех INSTALLED_APPS, чтобы вы могли выполнять команды управления. Это также часто используется для привязки сигналов к моделям.

Вернуться на верх