create_engine, Column, Integer, String, DateTime, ForeignKey
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
import os
from datetime import datetime
db_path = 'app.db'
Base = declarative_base()
class User(Base):
tablename = 'users'
id = Column(Integer, primary_key=True)
tg_id = Column(Integer)
username = Column(String)
class Post(Base):
tablename = 'posts'
table_args = {"extend_existing": True}
id = Column(Integer, primary_key=True)
title = Column(String)
body = Column(String)
author_id = Column(Integer, ForeignKey('users.id'))
author = relationship('User')
datetime = Column(DateTime, default=datetime.utcnow, nullable=False)
theme_id = Column(Integer, ForeignKey('themes.id'))
theme = relationship('Theme')
class Theme(Base):
tablename = 'themes'
id = Column(Integer, primary_key=True)
theme = Column(String)
engine = create_engine('sqlite:///' + db_path, echo=True)
if not os.path.exists(db_path):
Base.metadata.create_all(bind=engine)
print('Database was created')
Session = sessionmaker(bind=engine)
session = Session()
print('Session created!')
длч того что бы использовать на сайте? Просто session импортировать и использовать. А так же, просто интересует, как к такой модели подключить алембик?
У тебя flask sqlalchemy или обычная алхимия?
Flask-SQLAlchemy мне говорили это оболочка. Посоветовали использовать чистую алхимию, будет более гибкий проект, вот я и учил, та недавно пришел к созданию модели выше для другого проекта, и подумал почему бы и фласк такое не использовать, ведь оно выполняет все те функции что нужно вроде
https://alembic.sqlalchemy.org/en/latest/tutorial.html
И какая версия алхимии у тебя?
2.0.12 использую
А пишешь по синтаксису 1.4
А, погодите.. следовательно с доки что читал, лучше писать базу с использованием чистого sql и делать все запросы через with?
Ода, похоже я вовсе курил что-то, иначе это бред полный. Можете предложить что-то чуть легче чем оф дока, потому что мой джуниорский мозг ещё не способен читать такую закрученую фигню
Обсуждают сегодня