SQLAlchemy - viele zu viele mit extra Spalte - wie?
Verfasst: Montag 15. August 2016, 19:03
Moin Miteinander,
ich würde gern eine kleine Website machen, auf der Leute Wetten abgeben können.
Doch seit gestern hänge ich an einem Problem mit SQLAlchemy fest.
Ich habe drei Tabellen:
Player
---
ID, Name
Game
---
ID, Name, Datum, Ergebnis
Player_Game
---
ID_Player, ID_Game, Vote
Ich bin neu im Umgang mit SQLAlchemy und hoffe hier habt ne Idee wie ich auf die "Votes" zugreifen kann.
ich würde gern eine kleine Website machen, auf der Leute Wetten abgeben können.
Doch seit gestern hänge ich an einem Problem mit SQLAlchemy fest.
Ich habe drei Tabellen:
Player
---
ID, Name
Game
---
ID, Name, Datum, Ergebnis
Player_Game
---
ID_Player, ID_Game, Vote
Ich bin neu im Umgang mit SQLAlchemy und hoffe hier habt ne Idee wie ich auf die "Votes" zugreifen kann.
Code: Alles auswählen
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:pass@192.168.1.24/wetten'
db = SQLAlchemy(app)
PlayerGame = db.Table('player_game', db.Model.metadata,
db.Column('player_id', db.Integer, db.ForeignKey('player.id')),
db.Column('game_id', db.Integer, db.ForeignKey('game.id')),
db.Column('vote', db.Integer),
)
class Player(db.Model):
__tablename__ = 'player'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True)
count_wins = db.Column(db.Integer)
def __init__(self, username):
self.username = username
class Game(db.Model):
__tablename__ = 'game'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64))
date = db.Column(db.String(32))
result = db.Column(db.Integer)
players = db.relationship('Player', secondary=PlayerGame)
def __init__(self, name, date):
self.name = name
self.date = date
gamelist = Game.query.all()
for g in gamelist:
print('----')
print(g.name)
for p in g.players:
print(p.username)
print(p.vote) # <-- AttributeError: 'Player' object has no attribute 'vote'