【PythonのWebフレームワーク Flaskをやってみた1】
はじめに
こんにちは、がんがんです。
今回は最近気になっていたPythonのWebフレームワーク【Flask】について学習してみたのでその備忘録です。
きっかけ
Flaskに興味を持ったきっかけはpaizaのFlask講座です。
paiza.jp
今年の前期にデータベースの授業を受講し、MySQLについて少しだけ触りました。
paizaの講座でもMySQLがあれば受けたいなと思い、探していた時にたどり着いたのがFlaskでした。
実際に体験してみるととてもおもしろく、もっと学びたい!と思う頃には「続きは有料講座」というふうに出ました。
今後有料講座にすることもあるでしょうが、まずは無料で入門できるものはないかと探してみたのがことの始まりです。
Flaskとは
FlaskはPythonのWebフレームワークです。Djangoよりも軽量なWebフレームワークというのが特徴です。
Flaskの入門についてはpaizaさんの方でまとめられているので参考までに。
paiza.hatenablog.com
今回はこちらのFlask入門を試していきました。
Flask入門 - Python学習講座
実験
1. Webアプリケーションの作成
まずは基本をやってみました。run.py
from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "<html><body><h1>sample</h1></body></html>" if __name__ == "__main__": app.run()
しっかりとできてました!
2. テンプレートの使用
run.py
があるところにtemplatesというフォルダを作ります。その配下に
index.html
というを配置します。index.html
を以下に示します。
<!doctype html> <title>サンプル</title> <head> <title></title> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <link rel="stylesheet" type=text/css href="{{ url_for('static', filename='style.css') }}"> </head> <body> <header> <div class="navbar navbar-dark bg-dark box-shadow"> <div class="container d-flex justify-content-between"> <a href="/" class="navbar-brand d-flex align-items-center"> <strong>サンプル</strong> </a> </div> </div> </header> <div class="content container"> <h2>値の表示</h2> <p>値1:{{ values.val1 }}</p> <p>値2:{{ values.val2 }}</p> </div> </body> </html>
run.py
も以下のように変更します。
from flask import Flask from flask import render_template app = Flask(__name__) @app.route("/") def hello_world(): values = {"val1": 100, "val2": 200} return render_template( 'index.html', values=values ) if __name__ == "__main__": app.run()
しっかりと表示されました。
まとめ
とりあえず、Flask入門のHello Worldをやってみました。意外と簡単にできてよかったです。
HTMLの部分が入門としては少し難しかったので、次回はこちらを試してみます。