Вы хотите установить для этого переменную окружения. Поскольку каждая среда уникальна для машины, на которой она работает, каждый член команды будет иметь свою собственную строку подключения, полученную из соответствующей среды. Я покажу пример для оболочки Zsh, но Bash или другие оболочки должны быть эквивалентными.
Создайте файл (если один уже не существует) называется ~/.zshenv
В этом файле, добавьте строку:
export DB_CONNECTION_STRING="mysql://username:[email protected]/dbname"
Обратите внимание, что не должно быть без пробелов между определение переменной и ее значение (а именно знак равенства не имеют пробелов вокруг него). Это было проблемой для меня на Zsh.
Чтобы применить этот пробег переменной source ~/.zshenv
. Он будет автоматически загружаться при перезагрузке, но мы не хотим каждый раз выходить из системы/при изменении переменной varialble. Убедитесь, что переменная была определена путем запуска printenv | grep DB_CONNECTION_STRING
.
В колбу, просто определить следующее (не забывая import os
сверху):
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DB_CONNECTION_STRING')
Использование переменных окружения действительно путь. Я использовал материал жесткого кода, что является плохой практикой и, как вы можете видеть, было бы проблемой даже для чего-то тривиального, как несколько пользователей, подключающихся к одной и той же базе данных.
EDIT: см. Комментарий @ rmn о функциональности флагов папки экземпляра; похоже, является твердой альтернативой переменным среды (конечно, это ограничивается приложением Flask, переменные окружения могут использоваться для чего-либо)
'os.environ.get (" DB_STRING ", 'mysql: // имя пользователя: пароль @ localhost/dbname')', тогда вы просто устанавливаете переменную окружения ... –
вы можете использовать 'папку экземпляра': https: //exploreflask.com/configuration.html # instance-folder –
@rmn; не знал о папке экземпляра; отлично. –