Атрибут session
Атрибут session применяется к объекту
SQLAlchemy и возвращает текущую сессию
SQLAlchemy, через которую выполняются запросы к базе
данных. Сессия позволяет добавлять, изменять, удалять
и выбирать записи моделей. Обычно атрибут используется
внутри функций-обработчиков Flask вместе с методами
add, commit, delete и execute.
Синтаксис
db.session
Пример
Давайте создадим модель и добавим запись в базу
данных через атрибут session:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
with app.app_context():
db.create_all()
user = User(name='abcde')
db.session.add(user)
db.session.commit()
res = User.query.all()
print(res)
Результат выполнения кода:
[<User 1>]
Пример
Давайте выполним произвольный SQL-запрос через
атрибут session и метод execute:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
with app.app_context():
res = db.session.execute(text('SELECT 1'))
print(res.scalar())
Результат выполнения кода:
1
Смотрите также
-
класс
SQLAlchemy,
который связывает Flask с SQLAlchemy -
метод
create_all,
который создаёт все таблицы моделей -
метод
get_or_404,
который возвращает запись или 404 -
атрибут
Model,
который является базовым классом моделей