フォルダ構成
ディレクトリ構成
- flaskapp
- templates
- index.html
- result.html
- app.py
- templates
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/result', methods=["GET"])
def result_get():
msg = request.args.get('msg', "")
return render_template('result.html', message = msg)
@app.route('/result', methods=["POST"])
def result_post():
msg = request.form["msg"]
return render_template('result.html', message = msg)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>flask app/index</h1>
<form action='/result'>
<input type="text" name="msg">
<button type="submit" formmethod="GET">GET送信</button>
<button type="submit" formmethod="POST">POST送信</button>
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>flask app/result</h1>
<p>{{message}}</p>
</body>
</html>
GET と POST を関数内で分岐するには以下のようにします。
@app.route('/result', methods=["GET", "POST"])
def result_get():
if(request.method == "GET"):
msg = request.args.get('msg', "")
return render_template('result.html', message = msg)
else:
msg = request.form["msg"]
return render_template('result.html', message = msg)