Python Forum
Critique my code please
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Critique my code please
#1
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

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)
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Pyhton Newbie invites critique on Pump Calculator KevinBrown 0 1,967 Mar-14-2019, 10:38 AM
Last Post: KevinBrown

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020