无法从my.flaskenv文件导入值

2024-05-14 00:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习我的课程中的第一个python和flask应用程序。完成项目后不久,我将代码推送到github(按照作者的指示),我意识到作者让我在app.py文件中存储我的本地db密码和生产db密码,这不是很安全。但是作者还让我创建了一个.flaskenv文件。这让我想起了在javascript和节点项目中使用.dotenv,因此我认为应该将我的db密码存储在该文件中,然后将其放在gitignore中

但是,我还没有找到将该文件中的值读取到app.py文件中的解决方案。我翻遍了烧瓶文件,没有发现任何有用的东西

我在另一篇文章中读到,我可以做到以下几点

.flaskenv:

SQL_PW=myFakePassword

从我的app.py:

from flask import Flask , render_template , request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI']='postgresql+psycopg2://postgres:'+os.SQL_PW+'@localhost/quotes'

然而,当我尝试实现该解决方案时,我得到了以下错误

AttributeError: module 'os' has no attribute 'SQL_PW'

将.flaskenv文件中的值读入app.py文件的最佳方法是什么


1条回答
网友
1楼 · 发布于 2024-05-14 00:24:12

我使用dotenv模块和.env文件而不是.flaskenv。安装时使用:

pip install python-dotenv

将以下内容添加到你的app.py:

from dotenv import load_dotenv
load_dotenv()

然后这些秘密将作为环境变量提供

您可以通过以下方式访问它:

os.environ.get("SQL_PW")

相关问题 更多 >