Flaskで,Webサイトを構築するtutorial
(この行を消して、ここに「迷い」と「決断」について書いてください)
Sponsored by イーアイデム
目次
flaskアプリケーション
flaskとは,Python(version 3.4以降)上で動作するWebアプリケーションフレームワークである.本記事では,flaskのチュートリアルを実行した結果をのメモを紹介します.
flaskの得意とするところは,小規模Webサイトの構築です.「Pythonで作成した,バッチアプリケーションをWeb上で公開したい!」みたいな場合にうってつけでしょう.
動作環境
- Python(version 3.4)
Hello worldをブラウザ出力する
まずは,Hello Worldをブラウザ出力するアプリケーションから始めましょう.まず,Flaskをpipコマンドでinstallしてください.flaskアプリケーションを構築するには,ブラウザからのhttpリクエストを処理し,レスポンスを生成する関数をpythonファイルに記述する必要があります.それでは具体的な説明を開始します.
まず,test_appディレクトリ(名前はどうでもよい)直下にpythonファイル(今回はapp.py)を作成します.app.pyの内容は次の通りです.
app.py
アプリケーションを起動するには,CLI上で
と叩けば,サーバーが起動します.
にブラウザアクセスすれば,画面上に「Hello World!」と表示されます.
jinja2テンプレート
さて,「Hello World!」ができたら,htmlファイル出力をしてみましょう.今回は,janja2というテンプレートを利用してhtmlを返してみます.jinja2を利用するには,pipコマンドでjinja2ライブラリをinstallしておきましょう.jinja2テンプレートは,動的なhtml生成機能を実装するのに有効です.準備として返したいhtmlファイルをtest_app下に作成したtemplatesディレクトリに置いておきます.ディレクトリ名は,必ずtemplatesとしてください.今回は,httpレスポンスとして,templatesディレクトリ下の次のindex.htmlを返してみます.
このファイルを出力するpythonファイルの内容は,次の通りです.
サーバー起動の方法は,Hello Worldアプリケーションと一緒なので省略します.
URL http://localhost:8080/index
にアクセスすれば,index.htmlの内容が出力されます.
注目するポイントは,
- index.htmlないに{{ 変数名 }}と書いておいて,app.py内で変数の値を入力することができる.
- 辞書型配列(app.pyのfavorite)は,index.html内の {% for key, value ~ {% end for %}でloop出力できる.
でしょうか.他にjinjaテンプレート内でリストのloopを処理したりもできるので興味がある方は調べてみてください.
css装飾
cssで装飾するには,cssファイルをtest_app下のstaticフォルダに置きます.次のstylesheet.cssは,単に背景色を青色にするcssファイルです.
stylesheet.css
まとめ
今回は,flask + jinja2で単純なwebサイト構築をメモとしてまとめてみました.今回の知識とpostリクエスト,そしてpythonによるDB操作程度の知識があれば掲示板のアプリケーションが作れるので,tryしてみようと思います.