Skip to content

Instantly share code, notes, and snippets.

@ace3df
Last active September 14, 2016 20:58
Show Gist options
  • Save ace3df/a16e492a1f3b3dadb7fc87c543fcb0b4 to your computer and use it in GitHub Desktop.
Save ace3df/a16e492a1f3b3dadb7fc87c543fcb0b4 to your computer and use it in GitHub Desktop.
from flask_sqlalchemy import SQLAlchemy
from views import app
db = SQLAlchemy(app)
NOVEL_NAME_LENGTH = 120
NAME_LENGTH = 120
genres = db.Table('genres',
db.Column('genre_id', db.Integer, db.ForeignKey('genre.id')),
db.Column('series_id', db.Integer, db.ForeignKey('series.id'))
)
class Series(db.Model):
id = db.Column(db.Integer(), primary_key=True)
author = db.Column(db.String(NAME_LENGTH))
description = db.Column(db.Text())
status = db.Column(db.Boolean())
side_stories = None
genres = db.relationship('Genre', secondary=genres,
backref=db.backref('series_br', lazy='dynamic'))
def __init__(self, author: str, description: str, status: bool, side_stories=None):
self.author = author
self.description = description
self.status = status
self.side_stories = side_stories
class Book(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(NOVEL_NAME_LENGTH))
synopsis = db.Column(db.Text())
volume_cover = db.Column(db.LargeBinary())
volume_count = db.column(db.Integer())
def __init__(self, title: str, synopsis: str, volume_cover, volume_count: int):
self.title = title
self.synopsis = synopsis
self.volume_cover = volume_cover
self.volume_count = volume_count
class Genre(db.Model):
# Mate tbh I think there are better ways to do this
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(50))
class Author(db.Model):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(NAME_LENGTH))
series = None
def __init__(self, name: str, series: Series):
self.name = name
self.series = series
class Artist(db.Model):
id = db.Column(db.Integer(), primary_key=True)
name = db.Column(db.String(NAME_LENGTH))
series = None
def __init__(self, name: str, series: Series):
self.name = name
self.series = series
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment