将已部署的Flask应用程序连接到另一台服务器/提供程序上托管的数据库

时间:2019-05-06 19:46:06

标签: python mysql database flask flask-sqlalchemy

我想了解或指出正确的方向,如何将已部署的flask应用程序连接到另一台服务器/数据库上托管的mysql db。我将使用PythonAnywhere或Linode进行部署,但不知道如何将其连接到另一台Linux服务器上托管的数据库。我确实有权访问该服务器,并获得了ssh凭据和ip。我是否需要通过托管应用程序创建ssh隧道?我是一个菜鸟,以前从未部署过Flask应用程序,所以我在部署并将其连接到已经部署的数据库时特别不满意。谢谢大家。

1 个答案:

答案 0 :(得分:0)

您很可能在使用声明引擎来定义数据库。

一种常见的方法是在环境中设置(密码敏感)变量,例如数据库URL。

export DB_URL=mysql://root:root@127.0.0.1:3306/database 

将此URL修改为目标主机,并确保该主机接受传入的连接。 在您的应用中,您可以参考以下内容:

import os
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine(os.getenv('DB_URL'))
db_session = scoped_session(sessionmaker(autocommit=False,
                                         autoflush=False,
                                         bind=engine))
Base = declarative_base()

https://stackoverflow.com/a/17625641/10581388