from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/sample', methods=['GET', 'POST']) def test(): if request.method == 'GET': res = request.args.get('get_value') elif request.method == 'POST': res = request.form['post_value'] return res
form action="/sample" method="get"> input type="text" name="get_value" /> input type="submit" value="送信" /> /form> form action="/sample" method="post"> input type="text" name="post_value" /> input type="submit" value="送信" /> /form>
#post取得 #form.py from flask import Flask, request, render_template app = Flask(__name__) @app.route("/") def show(): message = "Hello World" return render_template("form.html", message = message) @app.route("/result", methods=["POST"]) def result(): message = "form値取得" article = request.form["article"] name = request.form["name"] return render_template("form.html", message = message, article = article, name = name) if __name__ == '__main__': app.debug = True app.run(host='0.0.0.0', port=80) #layout.html body> p>共通テンプレート/p> {% block content %} {% endblock %} /body> #form.html {% extends "layout.html" %} {% block content %} h1>フォーム/h1> p>{{ message }}/p> form action="/result" method="post"> label for="article">投稿/label> input type="text" name="article"> label for="name">名前/label> input type="text" name="name"> button type="submit">送信する/button> /form> p>{{ article }} {{ name }}/p> {% endblock %} #get取得 #form.py from flask import Flask, request, render_template app = Flask(__name__) @app.route("/") def show(): message = "Hello World" return render_template("form.html", message = message) @app.route("/result", methods=["GET", "POST"]) def result(): message = "This is paiza" if request.method == "POST": article = request.form["article"] name = request.form["name"] else: article = request.args.get("article") name = request.args.get("name") return render_template("form.html", message = message, article = article, name = name) if __name__ == '__main__': app.debug = True app.run(host='0.0.0.0', port=80) #form.html {% extends "layout.html" %} {% block content %} h1>フォーム/h1> p>{{ message }}/p> form action="/result" method="get"> label for="article">投稿/label> input type="text" name="article"> label for="name">名前/label> input type="text" name="name"> button type="submit">送信する/button> /form> p>{{ article }} {{ name }}/p> {% endblock %} #battle.py from 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) #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> button type="submit">たたかう/button> /form> form action="/" method="get"> input type="submit" value="にげる!"> /form> {% endblock %}