UWSGI - Запуск сценария с помощью manage.py

Мне нужно запустить скрипт в моем проекте Django.

Я использую этот подход, он работает, но я ищу более действенные альтернативы.

uwsgi.py

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MyApp.settings")
application = get_wsgi_application()

__import__('myapp.script')
import os

os.environ = {'DJANGO_SETTINGS_MODULE': 'MyApp.settings'}

import django

django.setup()

def main():

    # some script using django db
    pass

main()

Я уже просмотрел документацию по uwsgi и django, но не могу найти способ запустить manage.py.

Мне не нравится использовать этот подход, потому что каждый раз мне нужно устанавливать DJANGO_SETTINGS_MODULE, потому что я также хочу запускать его локально.

Я предпочитаю использовать runscript. Итак, есть ли способ вызвать manage.py из модуля wsgi, чтобы использовать runcript для запуска script.py?

Или вы знаете другой подход, например, uwsgi.ini или что-то еще?

Вы также можете создавать свои собственные команды управления: https://docs.djangoproject.com/en/4.0/howto/custom-management-commands/

Когда у вас есть команда, вы можете выполнить ее с помощью python manage.py your_command, а также из представления или другого места в вашем коде с помощью функции call_command:

from django.core.management import call_command
call_command('your_command')

Таким образом, вам не придется беспокоиться о модуле настроек или других накладных расходах или настройках, связанных с django

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