【发布时间】:2019-07-03 00:01:57
【问题描述】:
这是我第一次编写 Web 应用程序并使用 SQLAlchemy,我不确定我是否完全理解会话的概念。目前,每当需要查询数据库时,我都会加载一个新会话。像我在下面所做的那样用 sql_session.close() 关闭它就足够了吗?
不关闭它会导致很多问题吗?
engine = create_engine('sqlite:///database.db', echo=True)
Base = declarative_base(engine)
class Kinases(Base):
__tablename__ = 'Kinase'
full_name = Column(String)
uniprot_code = Column(String)
def loadSession():
metadata = Base.metadata
Session = sessionmaker(bind=engine)
session = Session()
return session
@app.route("/search/kinases/<query>")
def kinase_results(query):
sql_session = loadSession()
kinase = sql_session.query(Kinases).get(query)
if kinase is None:
return redirect(url_for('user_message', query=query))
name = kinase.full_name
sql_session.close()
【问题讨论】:
-
请考虑使用 Flask-SQLAlchemy,因为您使用的是 Flask。它为您处理会话的生命周期。
标签: python session flask sqlalchemy