Aug-04-2019, 04:21 AM
Hi List,
I'm learning Python, flask and SQLite with flask-sqlalchemy.
I've built my tables and tried to set up the relationships.
I'd be pleased if someone would take a look and let me know if and how I've gone wrong.
TIA
John
models.py
I'm learning Python, flask and SQLite with flask-sqlalchemy.
I've built my tables and tried to set up the relationships.
I'd be pleased if someone would take a look and let me know if and how I've gone wrong.
TIA
John
models.py
from datetime import datetime from app import db class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) players = db.relationship('Players') def __repr__(self): return '<User {}>'.format(self.username) class Players(db.Model): id = db.Column(db.Integer, primary_key=True) initials = db.Column(db.String(5)) user_id = db.Column(db.Integer, db.ForeignKey('user.id')) cube = db.relationship('Cube') score = db.relationship('Score') def __repr__(self): return '<Players {}>'.format(self.initials) class Position(db.Model): id = db.Column(db.Integer, primary_key=True) box = db.Column(db.String(3)) capt = db.Column(db.String(4)) crew1 = db.Column(db.String(5)) crew2 = db.Column(db.String(5)) crew3 = db.Column(db.String(5)) crew4 = db.Column(db.String(5)) crew5 = db.Column(db.String(5)) game = db.relationship('Game') def __repr__(self): return '<Position {} {} {} {} {} {} {}>'.format(self.box, self.capt, self.crew1, self.crew2, self.crew3, self.crew4, self.crew5) class Game(db.Model): id = db.Column(db.Integer, primary_key=True) position_id = db.Column(db.Integer, db.ForeignKey('position.id')) position = db.relationship('Position') cube = db.relationship('Cube') action = db.relationship('Action') score = db.relationship('Score') def __repr__(self): return '<Game {}>'.format(self.id) class Cube(db.Model): id = db.Column(db.Integer, primary_key=True) cubevalue = db.Column(db.Integer(3)) player_id = db.Column(db.Integer, db.ForeignKey('player.id')) game_id = db.Column(db.Integer, db.ForeignKey('game.id')) action = db.relationship('Action') def __repr__(self): return '<Cube {}>'.format(self.cubevalue) class Action(db.Model): id = db.Column(db.Integer, primary_key=True) action = db.Column(db.Integer(1)) offerfrom = db.Column(db.String(3)) offerto = db.Column(db.String(3)) game_id = db.Column(db.Integer, db.ForeignKey('game.id')) cube_id = db.Column(db.Integer, db.ForeignKey('cube.id')) cube = db.relationship('Cube') def __repr__(self): return '<Action {} {} {}>'.format(self.action, self.offerfrom, self.offerto) class Score(db.Model): id = db.Column(db.Integer, primary_key=True) value = db.Column(db.Integer(3)) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) game_id = db.Column(db.Integer, db.ForeignKey('game.id')) player_id = db.Column(db.Integer, db.ForeignKey('player.id')) game = db.relationship('Game') def __repr__(self): return '<Action {}>'.format(self.value) class Location(db.Model): id = db.Column(db.Integer, primary_key=True) town = db.Column(db.String(20)) game_id = db.Column(db.Integer, db.ForeignKey('game.id')) game = db.relationship('Game') def __repr__(self): return '<Action {}>'.format(self.town)