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

Метод create_all

Метод create_all применяется к объекту SQLAlchemy и создаёт в базе данных все таблицы, которые описаны моделями. Первым параметром передаётся объект bind - подключение к базе данных. Если его не указать, метод использует подключение по умолчанию.

Синтаксис

db.create_all(bind=None)

Пример

Давайте создадим приложение с одной моделью User и вызовем метод create_all:

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(50)) with app.app_context(): db.create_all() print('tables created')

Результат выполнения кода:

"tables created"

Пример

Давайте создадим несколько моделей и проверим, что метод create_all создаёт таблицы для всех сразу:

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(50)) class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) with app.app_context(): db.create_all() print(db.metadata.tables.keys())

Результат выполнения кода:

dict_keys(['user', 'article'])

Пример

Давайте передадим подключение явно через параметр bind:

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(50)) with app.app_context(): engine = db.engine db.create_all(bind=engine) print('ok')

Результат выполнения кода:

"ok"

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

  • метод drop_all,
    который удаляет все таблицы из базы данных
  • метод init_app,
    который привязывает объект SQLAlchemy к приложению
  • атрибут metadata,
    который хранит описание всех таблиц
  • атрибут engine,
    который содержит подключение к базе данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить