Кастомные команды django
В джанго есть кастомные команды. Почему-то я открыл их для себя не так давно, о чём жалею. Вся прелесть кастомной команды в том, что она сама настраивает DJANGO_SETTINGS_MODULE. Раньше я делал это руками, что меня изрядно раздражало. А если скрипт лежал ещё и не в корне проекта, то приходилось также пихать в sys.path этот самый корень, что проимпортировать потроха проекта.
Допустим скрипт лежит в %ROOT%/app/bin/script.py. Раньше бы я написал такую кашу в начале этого скрипта:
import sys
import os
from os.path import join, dirname, realpath
sys.path.insert(0, dirname(dirname(realpath(__file__))))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings']
Как раз эту проблему кастомная команда решает автоматически. Очень удобно оформлять различные скрипты, которые запускаются по крону, в виде кастомных команд.






Comments