これを実行すると、name, name2 それぞれ違う値を入力すると,
TypeError: redirect() takes 0 positional arguments but 1 was given
のエラーが出ます。
関数名をvalidateに変えると問題なく実行されたのですが、どうしてredirectという関数名ではいけないのでしょうか??
html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>二つの入力した名前が一致するか?</title> 6</head> 7<body> 8 <h1>入力チェックを実装します。<h1> 9 {% if error %} 10 <h2> {{ error }} <h2> 11 {% endif %} 12 13 14 <form method="get" action="{{ url_for("redirect") }}"> 15 <!-- あとでlabelでも試すか。 --> 16 <p>最初の名前を入力:<input name="name" type="text" size="40"></p> 17 <p>二つ目の名前を入力:<input name="name2" type="text" size="40"></p> 18 <button type="submit">送信します。</button> 19 </form> 20 21</body> 22</html> 23
html
1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title>お名前を入力して下さい</title> 6</head> 7<body> 8 <h1>入力チェック、問題なしです!</h1> 9</body> 10</html> 11
python
1from flask import Flask, render_template, request, redirect, url_for 2app = Flask(__name__) 3 4 5@app.route("/") 6def index(): 7 return render_template('name_input.html') 8 9@app.route("/redirect") 10def redirect(): 11 name = request.args.get("name", "") 12 name2 = request.args.get("name2", "") 13 if name != name2: 14 error = "入力内容が正しくありません" 15 return render_template("name_input.html", error=error) 16 17 return redirect(url_for("success")) 18 19@app.route("/success") 20def success(): 21 return render_template("success.html")
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/09 00:02