【发布时间】:2020-02-20 09:32:59
【问题描述】:
我有带有 Flask 和 Django 容器的 Docker 容器应用程序。 Django容器和Flask Container之间可以共享数据库吗?
django: &django
...
depends_on:
- postgres
flask:
...
ports:
- "5090:5090"
...
- postgres
links:
- postgres
postgres:
build:
...
env_file:
- ./.envs/.local/.postgres
模型在 Django 应用程序中。所以,我需要使用 Postgres 数据库在 Flask 应用程序中进行登录。问题是,我只想使用到数据库的连接,我不需要在 Flask 中做模型。
我使用了 Sqlalchemy 方法:
if form.validate_on_submit():
query = session.query(User)
login = User.query.filter(username=form.username.data).first()
if login is not None:
print(login)
return redirect(url_for('index'))
return render_template('login.html', form=form)
我尝试了 Panda 方法:
if form.validate_on_submit():
sql = "SELECT * from users WHERE username = '{0}'".format(form.username.data)
login = pd.read_sql_query(sql,SQLALCHEMY_DATABASE_URI)
if login is not None:
print(login)
return redirect(url_for('index'))
但是两种情况下的错误都是一样的,我需要做一个关系,所以,它是一个迁移,在 Flask 中。
**sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "users"**
这是我的database.py:
...
SQLALCHEMY_DATABASE_URI = 'postgres://%s:%s@%s:%s/%s' % (user, pwd, host, port, db)
SQLALCHEMY_TRACK_MODIFICATIONS = os.environ.get('SQLALCHEMY_TRACK_MODIFICATIONS')
db_session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
def init_db():
...
【问题讨论】:
标签: python postgresql docker flask