# вот модели
class Author(Base):
__tablename__ = "authors"
id = Column(Integer, primary_key=True)
name = Column(String(50))
books = relationship("Book", secondary="authors_books", back_populates="authors")
class Book(Base):
__tablename__ = "books"
id = Column(Integer, primary_key=True)
book = Column(String(50))
authors = relationship("Author", secondary="authors_books", back_populates="books")
class AuthorBook(Base):
__tablename__ = "authors_books"
author_id = Column(Integer, ForeignKey("authors.id"), primary_key=True, )
book_id = Column(Integer, ForeignKey("books.id"), primary_key=True,)
# 1. добавить автора
author = Author(
name = "author 1"
)
session.add(author)
session.commit()
# тут все понятно
# 2. добавить книгу
book = Book(
book = "book 1"
)
session.add(book)
session.commit()
# тут все понятно
# 3. добавить связь существующему автору с существующей книгой
get_author = session.query(Author).get(1)
get_book = session.query(Book).get(1)
author_book = AuthorBook(
author_id = get_author.id,
book_id = get_book.id
)
session.add(author_book)
session.commit()
# тут все понятно
# 4. добавить автора и связать его с существующей книгой
# и вот тут начинаются сложности: надо создать связь между моделью Author & AuthorBook > добавляю связь в модель Author (этот вариант работает, но как-то со крипом, кажется (если есть вариант корректнее, буду рад его увидеть))
class Author(Base):
__tablename__ = "authors"
id = Column(Integer, primary_key=True)
name = Column(String(50))
books = relationship("Book", secondary="authors_books", back_populates="authors")
# добавляю связь
authors_books = relationship("AuthorBook")
author = Author(
name = "author 2"
)
get_book = session.query(Book).get(1)
author_book = AuthorBook(
book_id = get_book.id
)
author.authors_books.append(author_book)
session.add(author)
session.commit()
# 5. создать автора, книгу и связать добавить их во все модели — как это надо сделать?
если это текст, то пусть он при onfocus() приобретает нормальную контрастность, а при onblur() пусть становится бледнымЭто перебор. Я бы постарался свалить с сайта с таким эффектом максимально быстро.
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
engine = create_engine("sqlite:///foo.db")
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String(50))
usr1 = User(
name = "Iona"
)
sel = session.