Flaskお勉強中メモ
※メモ書き
hello world
app.route()にルーティングするPathを指定して、直下にメソッドを定義すると、そのPathへのアクセスがあったときにメソッドが呼び出されるようになる。 app.run()を呼べば、サーバーが起動する。debug=Trueを指定すれば、デバッグオプションが有効になりソースコードの変更時に自動的に読み込み直しがかかるようになる。開発時はこれでいいけど、デプロイするときは外すようにする。 そのほかに、port=5678でポートの変更、host='0.0.0.0'でアドレスの変更がかかる。
from flask import Flask app = Flask(__name__) if __name__ == "__main__": app.run()
routing
変数を使う
@app.route()
に<>を使うとURLを引数として利用することができる
例えば、localhost/user/kobashinにアクセスして、hello kobashin!を表示する場合は、
@app.route("/usr/<username>") def show_user(username): return "hello " + username + "!\n"
<int:username>とすれば、入力値を限定することができる。
redirectとrul_for
redirectはリダイレクト用のメソッド、url_forはそのメソッドのURLに変換してくれるメソッド(?)
from flask import Flask, url_for, redirect @app.route("/") def root_index(): return redirect("/link") @app.route("/redirect_link") def to_link(): return redirect(url_for("link")) @app.route("/link") def link(): return "link"
htmlのテンプレートを使う
render_template
メソッドを使うと、templates以下のディレクトリの指定したhtmlファイルを探しに行ってくれる。
テンプレートとして利用できる書式については、以下ドキュメントが参照できる
http://jinja.pocoo.org/docs/dev/templates/
from flask import Flask, render_template @app.route("/") def index(): return render_template("index.html")
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> hello world! </body> </html>