演習課題「Player一覧にvitalityを表示する」
右の環境には、SQLAlchemyとFlaskでMySQLからPlayersテーブルのデータを表示するプログラムが作成してあります。このファイルを修正して、Jobsテーブルのvitalityカラムを追加表示してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、サーバーを起動し、問題文に関するページにアクセスできる状態にしてください。
期待する出力値
※ http://localhost:5000 にアクセスすると、下記が表示されるようにする
1, Python, 12, 6, 勇者, 10
2, ケン, 7, 2, 盗賊, 3
3, リン, 1, 1, 戦士, 8
4, ユウ, 3, 3, 狩人, 5
5, クレア, 10, 4, 魔法使い, 3
6, ショウ, 5, 2, 盗賊, 3
7, さくら, 7, 1, 戦士, 8
8, ジャック, 5, 4, 魔法使い, 3
9, ロック, 12, 6, 勇者, 10
10, じゅん, 1, None, ,
#05:SQLAlchemyでテーブルを連結してデータを取り出す
ここでは、SQLAlchemyでテーブルを連結してデータを取り出す方法を学習します。 サンプルデータベースで、「players」テーブルの「job_id」と「jobs」テーブルの「id」を関連付けします。
外部キーを設定するjob_id = db.Column(db.Integer, db.ForeignKey('jobs.id'))
リレーションシップを設定するplayer = db.relationship('Player', backref=db.backref('jobs', lazy=True))
<table>
{% for player in players %}
<tr>
<td>{{ player.id }}</td>
<td>{{ player.name }}</td>
<td>{{ player.level }}</td>
<td>{{ player.job_id }}</td>
<td>{{ player.jobs.job_name }}</td>
</tr>
{% endfor %}
</table>
Flask-SQLAlchemyのモデルでのリレーションシップ | blog.PanicBlanket.com
http://blog.panicblanket.com/archives/2987
SQLAlchemyでSQLの基本的なクエリーまとめ(PythonのORM) - Qiita
https://qiita.com/bokotomo/items/a762b1bc0f192a55eae8