PythonのおすすめWebフレームワーク flask 入門
初心者向けに、おすすめのPythonのWeb開発フレームワークのひとつである flask の概要と簡単な実装例についてご紹介します。
目次
PythonのWebフレームワーク
Web開発というと Ruby の Ruby on Rails や PHP の Cake PHPや Laravel などが有名で、Pythonはあまり聞く機会が多くないかもしれません。しかし、PythonにもInstagramなどで使用されているDjangoという強力なWeb開発フレームワークや、Djangoと比べて軽量なフレームワークであるflaskなどがあります。今回の記事ではよりシンプルに実装ができるflaskについてご紹介します。
Django と flask の違い
簡単に Django と flask の用途の違いについて説明します。
Django
- 多くの機能を備えており、大規模なウェブ開発が可能。
- 実際のサービスでも多く使われている。
flask で Webサイトを作る
flaskを使うと、実にさまざまなウェブアプリケーションを開発することができます。今回はそのようなウェブアプリケーションを開発するための型を用意し、今後の開発の土台を作成していきたいと思います。
準備
まずは flask をインストールします。
pip install flask
ファイル構成
適当なディレクトリを作成し、ウェブサイトに必要なファイルを用意していきます。
flaskでは、基本的に以下のようなファイルの置き方に従います。
- ルートディレクトリ(メインのフォルダ)下にメインのpythonファイルを直接配置します。
- cssやjsファイルは、staticフォルダの下に配置します。
- htmlファイルは、templates フォルダの下に配置します。
├ app.py ├ static │ ├ css │ │ ∟style.css │ ├ js ├ templates ∟index.html
Python ファイル
pythonプログラムをwebアプリケーションのサーバーとして動かします。
@app.route('/') 以下の index 関数では、ウェブサイトのルートディレクトリにアクセスしたときの挙動について記述します。今回は、index.htmlを表示するように記述しています。
from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == "__main__": app.debug = True app.run(host='0.0.0.0', port=8080)
html ファイル
htmlファイルを用意します。cssやjsファイルも、通常と同じように読み込みます。
<html> <head> <link rel='stylesheet' type='text/css' href='static/css/style.css'> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <div id='header'> <h1>デモサイト</h1> </div> <div id='contents'> ここにコンテンツを作成していきましょう! </div> </body> </html>
Webサイトを立ち上げる
pythonプログラムを実行する
app.pyが置かれたルートディレクトリへ移動し、pythonスクリプトを実行します。
python app.py
下記のような表示が出ていれば成功です。
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) * Restarting with stat
サーバーにアクセスしてwebサイトを確認する
ブラウザを開き、下記のURLにアクセスしましょう。
http://0.0.0.0:8080/
このようにサイトが表示されていれば、flaskでWeb開発を行う土台は完成です。
まとめ
PythonのWeb開発フレームワークであるflaskについて紹介しました。今回はウェブサイトの型だけを作成したので、次回はこの土台を使ってflaskおよびpythonの強みを活かしたウェブアプリケーションを開発していきます。