Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- '''
- Created on Dec 8, 2012
- @author: sztosz
- '''
- #***IMPORTS***
- from sqlalchemy import Column, Integer, String, ForeignKey
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.orm import relationship, backref
- #from magic import (
- # Entity, one_to_many, many_to_one, many_to_many
- # )
- #***MODELS***
- Base = declarative_base()
- class Track(Base):
- __tablename__ = 'track'
- id = Column(Integer, primary_key=True)
- tracknumber = Column(Integer)
- # totalTracks = Column(Integer)
- discbumber = Column(Integer)
- title = Column(String)
- source = Column(String)
- album = Column(Integer, ForeignKey('album.id'))
- artist = Column(Integer, ForeignKey('artist.id'))
- def __init__(self, title, tracknumber, discnumber, source, album, artist):
- self.title = title
- self.tracknumber = tracknumber
- self.discbumber = discnumber
- self.album = album
- self.artist = artist
- self.source = source
- def __repr__(self):
- return "<Track {}, from {}, by {}>".format(self.title,
- self.album.title, self.artist.name)
- class Album(Base):
- __tablename__ = 'album'
- id = Column(Integer, primary_key=True)
- title = Column(String)
- artist = Column(Integer, ForeignKey('artist.id'))
- # tracks = relationship('Track', backref='album')
- tracks = relationship('Track')
- year = Column(Integer)
- def __init__(self, title, year, artist):
- self.title = title
- self.year = year
- self.artist = artist
- def __repr__(self):
- return "<Album {}, By {}>".format(self.title, self.artist.name)
- class Artist(Base):
- __tablename__ = 'artist'
- id = Column(Integer, primary_key=True)
- name = Column(String)
- # albums = relationship('Album', backref='artist')
- # tracks = relationship('Track', backref='artist')
- albums = relationship('Album')
- tracks = relationship('Track')
- def __init__(self, name):
- self.name = name
- def __repr__(self):
- return "<Artist {}>".format(self.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement