Створення Першої Моделі
У SQLAlchemy створення моделі передбачає визначення класу Python, який відповідає таблиці в базі даних. Кожен екземпляр цього класу представляє рядок у таблиці. Розглянемо простий приклад створення моделі Comment для зберігання коментарів користувачів.
from sqlalchemy import Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
Base = declarative_base()
class Comment(Base):
__tablename__ = "comments" # the name of the table in the database
id = Column(Integer, primary_key=True) # primary key column, uniquely identifies each comment
content = Column(Text, nullable=False) # content of the comment, cannot be null
created_at = Column(DateTime, default=datetime.utcnow) # timestamp when the comment is created, defaults to current time
# Create all tables defined by models
Base.metadata.create_all(engine)
Цей код визначає клас Python з назвою Comment, який представляє таблицю в базі даних. Клас наслідується від Base, що дозволяє йому бути відображеним на таблицю в базі даних.
__tablename__ = "comments"
Клас Comment, що наслідується від Base, визначає таблицю в базі даних. Це дозволяє відображати його на таблицю бази даних за допомогою Object-Relational Mapping (ORM).
id = Column(Integer, primary_key=True)
Поле id виконує роль первинного ключа, забезпечуючи унікальний ідентифікатор для кожного коментаря. SQLAlchemy автоматично збільшує значення для кожного нового запису.
content = Column(Text, nullable=False)
Поле content містить текст коментаря. Це обов'язкове поле, тобто коментар не може бути доданий у базу даних, якщо це поле порожнє.
created_at = Column(DateTime, default=datetime.utcnow)
Поле created_at автоматично зберігає мітку часу створення коментаря. Якщо значення не вказано, воно встановлюється на поточний час за допомогою datetime.utcnow, що гарантує збереження часу у форматі UTC.
Base.metadata.create_all(engine)
Цей рядок створює всі таблиці в базі даних, які були визначені у моделях. Він використовує інформацію з метаданих і створює необхідні таблиці через підключення, надане engine. Це корисно для автоматичного створення таблиць, якщо вони ще не існують.
Swipe to start coding
У цьому завданні вам надано початковий шаблон для визначення моделі SQLAlchemy. Ваше завдання — завершити модель, заповнивши відсутні частини.
- Атрибут
__tablename__визначає назву таблиці в базі даних. Замініть заповнювач на правильну назву таблиці для моделіUser. - Стовпець
idмає бути позначений як первинний ключ. Додайте відповідний ключовий аргумент для цього. - Стовпець
usernameмає бути унікальним, тобто жодні два користувачі не можуть мати однаковий username. Заповніть відсутній ключовий аргумент. - Стовпець
is_activeповинен мати значення за замовчуваннямTrue. Додайте відповідний аргумент для встановлення цього значення за замовчуванням.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain what the `engine` variable is and how to set it up?
How do I add a new comment to the database using this model?
What is the purpose of `declarative_base()` in this example?
Awesome!
Completion rate improved to 4.76
Створення Першої Моделі
Свайпніть щоб показати меню
У SQLAlchemy створення моделі передбачає визначення класу Python, який відповідає таблиці в базі даних. Кожен екземпляр цього класу представляє рядок у таблиці. Розглянемо простий приклад створення моделі Comment для зберігання коментарів користувачів.
from sqlalchemy import Column, Integer, String, Text, DateTime
from sqlalchemy.ext.declarative import declarative_base
from datetime import datetime
Base = declarative_base()
class Comment(Base):
__tablename__ = "comments" # the name of the table in the database
id = Column(Integer, primary_key=True) # primary key column, uniquely identifies each comment
content = Column(Text, nullable=False) # content of the comment, cannot be null
created_at = Column(DateTime, default=datetime.utcnow) # timestamp when the comment is created, defaults to current time
# Create all tables defined by models
Base.metadata.create_all(engine)
Цей код визначає клас Python з назвою Comment, який представляє таблицю в базі даних. Клас наслідується від Base, що дозволяє йому бути відображеним на таблицю в базі даних.
__tablename__ = "comments"
Клас Comment, що наслідується від Base, визначає таблицю в базі даних. Це дозволяє відображати його на таблицю бази даних за допомогою Object-Relational Mapping (ORM).
id = Column(Integer, primary_key=True)
Поле id виконує роль первинного ключа, забезпечуючи унікальний ідентифікатор для кожного коментаря. SQLAlchemy автоматично збільшує значення для кожного нового запису.
content = Column(Text, nullable=False)
Поле content містить текст коментаря. Це обов'язкове поле, тобто коментар не може бути доданий у базу даних, якщо це поле порожнє.
created_at = Column(DateTime, default=datetime.utcnow)
Поле created_at автоматично зберігає мітку часу створення коментаря. Якщо значення не вказано, воно встановлюється на поточний час за допомогою datetime.utcnow, що гарантує збереження часу у форматі UTC.
Base.metadata.create_all(engine)
Цей рядок створює всі таблиці в базі даних, які були визначені у моделях. Він використовує інформацію з метаданих і створює необхідні таблиці через підключення, надане engine. Це корисно для автоматичного створення таблиць, якщо вони ще не існують.
Swipe to start coding
У цьому завданні вам надано початковий шаблон для визначення моделі SQLAlchemy. Ваше завдання — завершити модель, заповнивши відсутні частини.
- Атрибут
__tablename__визначає назву таблиці в базі даних. Замініть заповнювач на правильну назву таблиці для моделіUser. - Стовпець
idмає бути позначений як первинний ключ. Додайте відповідний ключовий аргумент для цього. - Стовпець
usernameмає бути унікальним, тобто жодні два користувачі не можуть мати однаковий username. Заповніть відсутній ключовий аргумент. - Стовпець
is_activeповинен мати значення за замовчуваннямTrue. Додайте відповідний аргумент для встановлення цього значення за замовчуванням.
Рішення
Дякуємо за ваш відгук!
single