flaskで電話帳用のWEBアプリを作ってみる その1
(SQLITEとの接続、Flaskで表示させる)
flaskで電話帳用のWEBアプリを作ってみる その2
(FlaskにおけるPOST,GETの扱い方)
flaskで電話帳用のWEBアプリを作ってみる その3
(登録フォームを追加)
flaskで電話帳用のWEBアプリを作ってみる その4
(検索フォームを追加)
前回まで
電話帳用WEBアプリの表示部分まで実装できましたので、次は登録の部分を作成していこうと思いましたが、その前に躓きまくったのでここに整理用に書いておきます。
##まずはPOSTとGETについて
Alt+Dで表示される部分に表示されるのがGET、それ以外に見えない状態でデータを受け取るのがPOSTだそうです。
今回はPOSTで受け取る方法を試してみます。
##FlaskにおけるPOSTの受け取り方
チュートリアルが分かりやすかった。
つまったところを噛み砕いてこんな感じにしました。
まずはPOSTするための入力画面を作成します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset = "utf-8">
</head>
<body>
<form action = "{{url_for("add_ent")}}" method = "POST">
<input name = "Name" placeholder="名前">
<input type ="submit" value = "送信">
</form>
</body>
</html>
【ポイント】
{{url_for("アプリ内の関数"}}で実行する関数を選べます。
ここではPOSTでadd_ent関数を実行してくださいという命令です。
次に最低限のアプリを書きます。
# -*- coding:utf-8 -*_
from flask import Flask,request,render_template,redirect,url_for
app = Flask(__name__)
@app.route("/")
def hello():
return render_template("form_test.html")
@app.route("/add_entry" ,methods = ["POST"])
def add_ent():
try:
print(request.form["Name"])
finally:
return redirect(url_for("hello"))
if __name__ == '__main__':
app.run(debug = True)
【ポイント】
HTMLの方でadd_ent関数を実行してくださいとなってるのでadd_ent関数を定義します。
HTML側からadd_ent関数を実行したとき、自動的にlocalhost:5000/add にリダイレクトされます。
addディレクトリへのルーティングはPOSTメソッドを受け取るために必要みたいです。
ターミナルに送信した文章が表示されたら成功です。
自分はこれやってようやく理解できました。呪文多すぎや。