@Heavy10110

Как правильно поступать с SECRET_KEY при пуше на github?

Есть проект с обычным mysql. Пишут, что нужно создавать файл secret_settings.py и выносить туда SECRET_KEY с последующим добавлением в .gitignore, но я так понимаю, это больше про закрытые репозиторияи. Не совсем понимаю, как работодатель сможет почекать мой проект полностью, если не сможет его просто запустить без ключа. Так же знаю, что можно сделать это через докер и переменные окружения. Интересен вариант про переменные окружения, расскажите кто как заливает публичые репозитории?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
  • vmm86
    @vmm86
    [Python, Django,] Developer
    Можно в файле настроек settings.py пытаться получить SECRET_KEY из произвольного py-файла (НЕ добавляемого в систему контроля версий), который будет находиться по какому-то пути в проекте, а если этого файла при первом запуске нет - сгенерировать SECRET_KEY случайным образом, записать в этот файл и потом при новых перезапусках сервера получать его оттуда.
    # settings.py
    try:
        from some_package.secret_key_file import SECRET_KEY
    except ImportError:
        from django.utils.crypto import get_random_string
        SECRET_KEY = get_random_string(50, 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)')
        with open(os.path.join(BASE_DIR, 'some_package', 'secret_key_file.py'), 'w') as key_file:
            key_file.write("SECRET_KEY = '{key}'".format(key=SECRET_KEY))

    P.S. Хотя класть SECRET_KEY в переменную окружения - тоже хорошая практика.
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы