演習課題「フォームで、RPGの戦闘シーンを作る」
右の環境には、FlaskでRPGの戦闘シーンのプログラムが作成してありますが、プルダウンリストに敵の名前が1つしか表示されません。以下の敵の名前を表示するように、プログラムを修正してください。
スライム, モンスター, ドラゴン
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
※ 採点時は、戦闘フォームにアクセスできる状態にしてください。
#05:フォームでRPGの戦闘シーンを作ろう
ここでは、Flaskによるフォームの具体例として、RPGの戦闘シーンを作ります。先ほどのチャプターで作ったフォームをベースにして、ドロップダウンメニューでプレイヤーを選択できるようにしましょう。
myapp/battle.pyfrom flask import Flask, request, render_template
app = Flask(__name__)
players = ["勇者", "戦士", "魔法使い", "忍者"]
@app.route("/")
def show():
message = "あらたなモンスターがあらわれた!"
return render_template("battle.html", message = message, players = players)
@app.route("/result", methods=["POST"])
def result():
name = request.form["name"]
message = name + "はモンスターと戦った!"
return render_template("battle.html", message = message, players = players)
myapp/templates/battle.html{% extends "layout.html" %}
{% block content %}
<h1>RPGの戦闘フォーム</h1>
<p>{{ message }}</p>
<form action="/result" method="post">
<select name="name">
{% for player in players %}
<option value="{{ player }}">{{ player }}</option>
{% endfor %}
</select>
<p></p>
<button type="submit">たたかう</button>
</form>
<form action="/" method="get">
<button type="submit">にげる!</button>
</form>
{% endblock %}
【フレームワーク】
Flaskの簡単な使い方 - Qiita
https://qiita.com/zaburo/items/5091041a5afb2a7dffc8
ウェブアプリケーションフレームワーク Flask を使ってみる - Qiita
https://qiita.com/ynakayama/items/2cc0b1d3cf1a2da612e4
【テンプレートエンジン】
Welcome to Jinja2 — Jinja2 Documentation (2.10)
http://jinja.pocoo.org/docs/2.10/
Jinja2|Pythonテンプレートエンジン - Qiita
https://qiita.com/yasumodev/items/ae11047e2c8694867892
Jinja2の基本的な使い方 - Qiita
https://qiita.com/RyoMa_0923/items/528303906a55f9b568e0
Jinja2の使い方がわかるとFlaskを用いた開発がよりスマートになる - Qiita
https://qiita.com/ryo2851/items/7ae5de21307d101b4759