Метод init_app
Метод init_app применяется к объекту
SQLAlchemy и привязывает его к
приложению Flask. Первым параметром передаётся
экземпляр приложения app. Это позволяет
использовать один объект базы данных для
нескольких приложений, а также настраивать
подключение после создания расширения.
Синтаксис
db.init_app(app)
Пример
Давайте создадим объект SQLAlchemy и
привяжем его к приложению через init_app:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
db.init_app(app)
@app.route('/')
def index():
return 'database connected'
Результат выполнения кода для адреса /:
<+html+>
database connected
<-html+>
Пример
Давайте создадим модель и выполним запрос после инициализации расширения:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
db.init_app(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
with app.app_context():
db.create_all()
user = User(name='abcde')
db.session.add(user)
db.session.commit()
res = User.query.first()
@app.route('/')
def index():
return res.name
Результат выполнения кода для адреса /:
<+html+>
abcde
<-html+>
Смотрите также
-
класс
SQLAlchemy,
который создаёт расширение для работы с базой данных -
метод
create_all,
который создаёт все таблицы моделей -
метод
drop_all,
который удаляет все таблицы моделей -
атрибут
session,
который предоставляет доступ к сессии базы данных