2016-06-24 5 views
-2

я использую флягу-SQLAlchemy, определить модель:Как работает сеанс работы с флагом Sqlalchemy db.query?

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
db = SQLAlchemy(app) 

class User(db.Model): 
    # define user model 
    pass 

Когда я использую его как:

User.query.all() 

том, как сессия работы?

нужен ли какой-нибудь код, например session.close() или session.commit()? спасибо.

+0

Я прочитал исходный код, model.query бы связать сессию, она закрыта внутренняя? – bryantism

+0

Может быть. Я не совсем понимаю ваш вопрос. –

+0

@ HassanMehmood Я знаю, что db.session не связан с User.query.all(), но есть один сеанс, связанный с User.query, я хочу знать, есть ли какое-то место для закрытия или фиксации этого сеанса в фляге sqlalchemy internal – bryantism

ответ

0

Когда вы запрос для объекта в колбах SQLAlchemy, вам не нужно совершить. Если вы находитесь , вставьте или редактирование вам нужно это сделать.

Просто некоторые запросы:

>>> User.query.limit(1).all() 
[<User u'admin'>] 

Вставка новой записи:

>>> from yourapp import User 
>>> me = User('admin', '[email protected]') 
>>> db.session.add(me) 
>>> db.session.commit() 
+0

User.query имеет один сеанс, он запускает транзакцию, когда запрос, как Flask-Sqlalchemy обрабатывает это? – bryantism

Смежные вопросы