id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False, unique=True) books = db.relationship("Book", secondary="book_genre", back_populates="genres") def __str__(self): return f"<Genre: {self.name}>" def __repr__(self): return f"<Genre: {self.name}>" book_genre_table = db.Table( "book_genre", db.Column("book_id", db.Integer, db.ForeignKey("book.id")), db.Column("genre_id", db.Integer, db.ForeignKey("genre.id")), ) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), nullable=False, unique=True) favorite_books = db.relationship("Book", secondary="user_book", back_populates="users_who_favorited") favorite_books_table = db.Table( "user_book", db.Column("book_id", db.Integer, db.ForeignKey("book.id")),
"""Author model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) books = db.relationship('Book', back_populates='author') def __str__(self): return f'<Author: {self.name}>' def __repr__(self): return f'<Author: {self.name}>' class Genre(db.Model): """Genre model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False, unique=True) books = db.relationship('Book', secondary='book_genre', back_populates='genres') def __str__(self): return f'<Genre: {self.name}>' def __repr__(self): return f'<Genre: {self.name}>' book_genre_table = db.Table( 'book_genre', db.Column('book_id', db.Integer, db.ForeignKey('book.id')), db.Column('genre_id', db.Integer, db.ForeignKey('genre.id')))
"""Genre model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False, unique=True) books = db.relationship('Book', secondary='book_genre', back_populates='genres') def __str__(self): return f'<Genre: {self.name}>' def __repr__(self): return f'<Genre: {self.name}>' book_genre_table = db.Table( 'book_genre', db.Column('book_id', db.Integer, db.ForeignKey('book.id')), db.Column('genre_id', db.Integer, db.ForeignKey('genre.id'))) class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), nullable=False, unique=True) password = db.Column(db.String(200), nullable=False) favorite_books = db.relationship('Book', secondary='user_book', back_populates='users_who_favorited') def __repr__(self): return f'<User: {self.username}>'
"""Genre model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False, unique=True) books = db.relationship( 'Book', secondary='book_genre', back_populates='genres') def __str__(self): return f'<Genre: {self.name}>' def __repr__(self): return f'<Genre: {self.name}>' book_genre_table = db.Table('book_genre', db.Column('book_id', db.Integer, db.ForeignKey('book.id')), db.Column('genre_id', db.Integer, db.ForeignKey('genre.id')) ) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(100), nullable=False, unique=True) favorite_books = db.relationship('Book', secondary="favorite_books") favorite_book_table = db.Table( "favorite_books", db.Column("book_id", db.Integer, db.ForeignKey("book.id")), db.Column("user_id", db.Integer, db.ForeignKey("user.id")) )