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