flask - 使用 Flask-GraphiQL 一次连接到多个数据源
问题描述
我正在构建一个连接到两个不同数据库的 GraphQL API。我正在尝试使用Flask-GraphQL创建一个 GraphQL 接口,但似乎我只能通过上下文变量一次将单个 SQLAlchemy 会话绑定到应用程序:
from flask import Flask
from flask_graphql import GraphQLView
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, scoped_session
from schema import schema
# connect to database sources
engine1 = create_engine('sqlite:///db1.sqlite3')
engine2 = create_engine('sqlite:///db2.sqlite3')
session1 = scoped_session(sessionmaker(bind=engine1))
session2 = scoped_session(sessionmaker(bind=engine2))
# create app and add GraphiQL route
app = Flask(__name__)
app.add_url_rule('/graphql', view_func=GraphQLView.as_view(
'graphql',
schema=schema,
graphiql=True,
get_context=lambda: {'session': session1}
))
有没有办法一次连接到多个数据源,或者这是不可能的?
解决方案
推荐阅读
- makefile - 如何将目标文件复制到 Makefile 中的子文件夹?
- arrays - 从 tcl 中的数组中检索数字索引
- reactjs - 如何在我的反应组件中使用在 mongodb 上通过 multer 上传的图像?
- java - Android Popup Menu + Database 和查看更改问题
- c# - UWP 从 inkToolbarPenButton 中删除大小滑块
- arrays - 如何从 np.arange 中检索值?
- postgresql - 即使服务器关闭了连接,我的 PostgreSQL 查询是否仍在运行?
- excel - 索引匹配其他表中的数字,如果找不到,则匹配前 3 位数字
- r - 使用 tidymodels 编写分类工作流。得到“错误:列`.row`必须是长度..”
- d3.js - D3 v5:未为折线图绘制线,并且刻度未显示在 y 轴上