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

Метод drop_all

Метод drop_all применяется к объекту SQLAlchemy и удаляет все таблицы, которые зарегистрированы в метаданных. Первым параметром передаётся объект bind - подключение к базе данных, обычно это engine. Вторым необязательным параметром передаётся checkfirst - если он равен True, таблицы удаляются только при их наличии. Метод не возвращает результат и выполняет SQL-команды DROP TABLE для каждой таблицы.

Синтаксис

db.drop_all(bind=None, checkfirst=True)

Пример

Давайте создадим приложение Flask с двумя моделями и удалим все таблицы из базы данных:

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(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() db.drop_all() print('All tables dropped')

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

"All tables dropped"

Пример

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

from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import inspect 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(50)) with app.app_context(): db.create_all() db.drop_all() inspector = inspect(db.engine) res = inspector.get_table_names() print(res)

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

[]

Пример

Давайте удалим таблицы с параметром checkfirst=False, чтобы пропустить проверку наличия таблиц:

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(50)) with app.app_context(): db.create_all() db.drop_all(checkfirst=False) print('Dropped without check')

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

"Dropped without check"

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

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