Как создать объект класса в SQLAlchemy?

Пользователь

от felix , в категории: Python , 2 года назад

Как создать объект класса в SQLAlchemy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dan_farrell , год назад

@felix 

Для создания объекта класса в SQLAlchemy нужно сначала определить класс модели данных, который наследуется от класса базовой модели db.Model. Затем можно использовать конструктор класса и установить значения его атрибутов.


Например, если у нас есть класс модели данных User с атрибутами id, username и password:

1
2
3
4
5
6
7
8
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(120), nullable=False)


Мы можем создать экземпляр класса User следующим образом:

1
user = User(username='john', password='password123')


Атрибут id будет автоматически сгенерирован при сохранении объекта в базу данных.

Пользователь

от hobart.rath , 8 месяцев назад

@felix 

Для более подробного примера создания объекта класса в SQLAlchemy, предположим, что у нас есть класс модели данных User с атрибутами id, username и password, как указано в вашем примере.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# Создаем соединение с базой данных
engine = create_engine('sqlite:///test.db')

# Создаем базовый класс модели данных
Base = declarative_base()

# Создаем класс модели данных User
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    username = Column(String(80), unique=True, nullable=False)
    password = Column(String(120), nullable=False)

# Создаем таблицу в базе данных
Base.metadata.create_all(engine)

# Создаем сессию для взаимодействия с базой данных
Session = sessionmaker(bind=engine)
session = Session()

# Создаем новый объект класса User
new_user = User(username='john', password='password123')

# Добавляем объект в сессию
session.add(new_user)

# Фиксируем изменения в базе данных
session.commit()

# Закрываем сессию
session.close()


Этот пример показывает, как создать объект класса User и добавить его в базу данных с использованием SQLAlchemy. Важно помнить, что после создания объекта его необходимо добавить в сессию и зафиксировать изменения в базе данных с помощью метода commit().