使用数据库凭据登录 Flask 应用程序

时间:2021-01-17 05:20:55

标签: python flask

这可能更像是一个概念问题,而不是“我该怎么做”的问题。目前,我正在寻找创建一个 Flask 应用程序来帮助我创建一些复杂的 MongoDB 条目。当这些条目更简单时,这最初在我基于 CLI 的脚本中运行良好。我正在寻找一种方法来创建一种更安全的方法来在某些 docker 容器上部署此应用程序,而无需让应用程序本身访问数据库。我试图解决的想法是,我可以创建一个在用户登录之前无法访问数据库的 Flask 应用程序,并且用户登录凭据是数据库凭据。我正在努力解决这个问题,如果有人能提供一些见解,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker


app = Flask(__name__)
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")


# sqlalchemy
if not os.getenv("DATABASE_URL"):
    raise RuntimeError("DATABASE_URL is not set")

engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))

通常情况下,我们在运行应用程序之前设置环境变量,以便代码本身不会显式显示数据库 url。

在 mac 和 linux 中,这是使用

export DATABASE_URL=yourdatabaseurl
flask run

在窗口中

set DATABASE_URL=yourdatabaseurl
flask run
相关问题