РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
353 of 643 menu

Класс SQLAlchemy

Класс SQLAlchemy применяется для подключения базы данных к приложению Flask. Он объединяет возможности ORM SQLAlchemy и контекст приложения Flask. Первым параметром передаётся объект приложения, а необязательным параметром model_class задаётся базовый класс для моделей. После создания экземпляра класса доступны атрибуты Model, session, metadata и engine, а также методы create_all, drop_all и другие.

Синтаксис

from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy(app, model_class=Model)

Пример

Давайте подключим базу данных SQLite и создадим простую модель:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.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 создана в базе данных app.db

Пример

Давайте добавим запись в базу и прочитаем её:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.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>]

Пример

Давайте используем метод get_or_404 для поиска записи по идентификатору:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80)) @app.route('/user/<int:id>') def user(id): user = User.query.get_or_404(id) return user.name

Результат выполнения кода для адреса /user/1:

abcde

Смотрите также

  • метод init_app,
    который связывает SQLAlchemy с приложением
  • метод create_all,
    который создаёт все таблицы в базе данных
  • атрибут Model,
    который хранит базовый класс для моделей
  • атрибут session,
    который предоставляет доступ к сессии базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить