python flask初学者です。
flask sqlalchemyでのデータの取得について
実現したいことは
外部キーで繋がっている二つのテーブルから
特定のデータを取得してjsonで返したいです。
テーブルはCompany, Employee
class Company(db.Model): def __init__(self, c_name, created, modified): self.name = c_name self.created = created employee = relationship('Employee', backref='company', uselist=False) __tablename__ = 'company' id = db.Column(db.Integer(), primary_key=True, nullable=False, autoincrement=True, unique=True, comment="ID") c_name = db.Column(db.String(255), nullable=True) created = db.Column(db.Date, nullable=True, default=datetime.utcnow)
class Employee(db.Model): def __init__(self, e_name, birthday, gender, company_id): self.name = e_name self.birthday = birthday self.gender = gender self.company_id = company_id __tablename__ = 'employee' id = db.Column(db.Integer(), nullable=False, primary_key=True, autoincrement=True, unique=True, comment="ID") e_name = db.Column(db.String(255), nullable=False) birthday = db.Column(db.Date, nullable=False) gender = db.Column(db.Integer(), nullable=False, comment="性別(0:男、1:女)") company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
この二つのテーブルから
例えば
Companyテーブルに会社が5つ、
Employeeテーブルに社員が50人のデータがあります。
やりたいのはCompany id 1に所属している Employeeの男女の人数を取得したいです。
それをjson形式で出力したい。
Company_id = 1 の社員が男6人、女4人の場合
Company_id = 2 の社員が男3人、女7人の場合
{ "e_gender": [ { "id": 1, "name": "c_no1", "male": 6, "female": 4 }, { "id": 2, "name": "c_no2", "male": 3, "female": 7 }, ] }
となるように取得したいです。
genderの総数の取得はできたのですが
会社のidごとに分けて取得することができません。
まだ学習を始めて間もないので
ロジックもあまりわかっていないので質問が分かりにくいかと
思いますが、
わかる方、ご教授頂けませんか?
よろしくお願いいたします。
insert追加しました。
engine = create_engine(''mysql+pymysql://{user}:{password}@{host}/flask_sample?charset=utf8'', echo=True) Session = sessionmaker(bind=engine) session = Session() e_employee = Employee(name='e_name1', birthday='1990-01-01', gender='0', company_id = company_id) session.add(e_user) session.commit()
回答1件
あなたの回答
tips
プレビュー