Flaskの基礎

FlaskはPythonで書かれたWebアプリケーションフレームワークで、シンプルで軽量ながら柔軟性があります。この記事では、Flaskを使ったWeb開発の基礎について解説します。

Flaskとは

Flaskは、WerkzeugというPythonのツールキットとJinja2というテンプレートエンジンを組み合わせたWebアプリケーションフレームワークです。Flaskは、シンプルながらも柔軟性が高く、小規模なアプリケーションから大規模なアプリケーションまで対応できます。また、FlaskはPythonの標準ライブラリに依存しないため、非常に軽量で高速な処理が可能です。

Flaskのインストール

Flaskを使うためには、まずFlaskをインストールする必要があります。以下のコマンドを実行して、Flaskをインストールしてください。

pip install Flask

Flaskアプリケーションの基礎

Flaskアプリケーションを作成するためには、まずapp.pyというファイルを作成します。このファイルには、Flaskアプリケーションのルーティングや動作を記述します。

以下は、最も基本的なFlaskアプリケーションの例です。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

このコードは、Flaskアプリケーションを作成し、/へのアクセスに対してHello, World!というメッセージを返します。if __name__ == '__main__':の部分は、このファイルが直接実行された場合にのみapp.run()が実行されるようにするためのものです。

ルーティング

Flaskでは、ルーティングを使って、特定のURLにアクセスしたときにどの関数が呼び出されるかを定義します。ルーティングは、@app.route()デコレータを使って定義します。

以下は、複数のルートを持つFlaskアプリケーションの例です。

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

この例では、/にアクセスするとindex()関数が、/helloにアクセスするとhello()`関数が呼び出されます。

テンプレート

Flaskでは、HTMLテンプレートを使ってWebページを作成することができます。テンプレートを使うことで、ページの見た目を柔軟に変更することができます。

以下は、テンプレートを使ったFlaskアプリケーションの例です。

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

この例では、index.htmlというテンプレートをレンダリングして、Webページを表示します。

フォーム

Flaskでは、フォームを使ってユーザーからの入力を受け取ることができます。フォームは、HTMLの<form>タグを使って定義します。

以下は、フォームを使ったFlaskアプリケーションの例です。

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/submit', methods=['POST'])
def submit():
    name = request.form['name']
    return f'Hello, {name}!'

if __name__ == '__main__':
    app.run()

この例では、index.htmlというテンプレートにフォームを定義して、ユーザーからの入力を受け取ります。submit()関数では、request.formを使ってフォームの値を取得し、nameに格納しています。最後に、f'Hello, {name}!'を返して、ユーザーの入力を表示します。

結論

Flaskは、PythonのWebアプリケーション開発において、シンプルで軽量ながら柔軟性が高いフレームワークです。この記事では、Flaskの基礎について解説しました。今後は、この知識を応用して、より複雑なWebアプリケーションの開発に取り組んでみてください。