SQLAlchemy во Flask: мне нужно закрыть сеанс базы данных? - PullRequest
0 голосов
/ 08 февраля 2019

Я впервые пишу веб-приложение и использую 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()

1 Ответ

0 голосов
/ 08 февраля 2019

В большинстве случаев создание сеанса в области видимости является плохой идеей.Пожалуйста, прочитайте основы сессии для sqla.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...