Почему os.getenv работает с другими переменными среды, но не может получить переменную пароля Mysql в файле .env?Python

Программы на Python
Ответить
Anonymous
 Почему os.getenv работает с другими переменными среды, но не может получить переменную пароля Mysql в файле .env?

Сообщение Anonymous »

Я работаю над своим API Backend Flask. У меня есть файл .env в каталоге со следующими переменными: client_id , client_secret , mysql_password , flask_app . Я использую os.getenv ("client_id") и os.getenv ("client_secret") и внешний API IM, подключенный к успешному, и я могу запросить данные из них. Br /> Я делаю то же самое для подключения к моему DB, получив доступ os.getenv ("mysql_password") < /code> и настройки URI: < /p>

Код: Выделить всё

db_pswrd = os.getenv("MYSQL_PASSWORD")
app.config["SQLALCHEMY_DATABASE_URI"] = f"mysql://root:{db_pswrd}@localhost/my_db"
< /code>
Однако, как только я попытаюсь подключиться к базе данных MySQL через Flask-sqlalchemy, происходит следующая ошибка: < /p>
sqlalchemy.exc.OperationalError: (MySQLdb.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Обратите внимание, что я сильно урезал сообщение об ошибке. звонок

Код: Выделить всё

os.getenv("MYSQL_PASSWORD")
, ошибка базы данных исчезла, и я смог подключиться к базе данных. Почему мне не нужно вызывать эту функцию и я могу напрямую получить доступ к CLIENT_ID и CLIENT_SECRET через os.getenv() для внешнего API, но я не могу сделать это для MYSQL_PASSWORD? Все эти переменные env находятся в формате .env

Подробнее здесь: https://stackoverflow.com/questions/793 ... etrieve-my
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»