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

Атрибут Model

Атрибут Model является базовым классом для определения моделей базы данных при использовании расширения Flask-SQLAlchemy. Он наследуется от декларативной базы SQLAlchemy и предоставляет удобный интерфейс для описания таблиц, столбцов и связей между ними. Каждый класс, унаследованный от Model, автоматически становится таблицей в базе данных, а его атрибуты - столбцами этой таблицы.

Синтаксис

from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() class ModelName(db.Model): __tablename__ = 'table_name' id = db.Column(db.Integer, primary_key=True) field = db.Column(db.String(80))

Пример

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

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text) with app.app_context(): db.create_all()

После выполнения кода в базе данных будет создана таблица с тремя столбцами: id, title и content.

Пример

Давайте добавим запись в базу данных и выведем её на странице:

from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' db = SQLAlchemy(app) class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) @app.route('/') def index(): article = Article(title='hello') db.session.add(article) db.session.commit() res = Article.query.all() return render_template('index.html', articles=res)

Шаблон для вывода статей:

{% for article in articles %} <p>{{ article.title }}</p> {% endfor %}

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

<p>hello</p>

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

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