PythonでWebアプリを開発してみたいけれど、Djangoは難しそう…。そんな方におすすめなのが軽量フレームワーク「Flask」です。本記事では、Flaskを使ったWebアプリの作り方を初心者向けにわかりやすく解説します。
Flaskとは?
FlaskはPython製の軽量Webフレームワークで、必要最低限の機能を提供するシンプルな設計が特徴です。複雑な設定をしなくても、数行のコードでWebアプリを起動できます。例えば、Djangoがフルスタックフレームワークなのに対して、Flaskは必要な機能を自由に追加するスタイルなので、学習コストが低く、初心者でも取り組みやすいのが魅力です。
Flaskのインストール方法
まずは環境を整えましょう。Pythonがインストールされていれば、ターミナルやコマンドプロンプトで以下を実行するだけです。
pip install flask
インストールが完了したら、Flaskを使って「Hello World」を表示する最小のアプリを作成できます。これから順を追って見ていきましょう。
Flaskで最初のWebアプリを作ってみよう
Hello Worldアプリ
まずはシンプルなサンプルコードです。以下のコードをapp.py
として保存し、実行してみましょう。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, Flask!"
if __name__ == "__main__":
app.run(debug=True)
ターミナルで以下を実行すると、ローカルサーバーが立ち上がります。
python app.py
ブラウザでhttp://127.0.0.1:5000/
にアクセスすれば「Hello, Flask!」が表示されます。
ルーティングの基本
Flaskでは@app.route()
デコレーターを使ってURLと関数を紐づけます。例えば以下のように複数ページを作成できます。
@app.route("/about")
def about():
return "このページはAboutページです"
これで/about
にアクセスすると別ページを表示できます。非常にシンプルですが、実際のアプリ開発ではこの仕組みを組み合わせて複雑なWebサイトを構築していきます。
HTMLテンプレートを使う
テキストだけでは味気ないので、HTMLを返してみましょう。FlaskはJinja2というテンプレートエンジンを内蔵しているため、PythonコードとHTMLを組み合わせて表示できます。
テンプレートの作成
templates
というフォルダを作成し、その中にindex.html
を配置します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Flaskアプリ</title>
</head>
<body>
<h1>こんにちは、{{ name }} さん!</h1>
</body>
</html>
Pythonから変数を渡す
次にapp.py
を以下のように編集します。
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html", name="太郎")
これでアクセスすると「こんにちは、太郎さん!」と表示されます。動的にデータを埋め込めるのがFlaskの強力なポイントです。
フォーム入力とPOSTリクエスト
Webアプリにはユーザーからの入力が欠かせません。Flaskではフォーム入力を簡単に扱えます。
フォームのHTML
<form method="POST">
<input type="text" name="username" placeholder="名前を入力">
<button type="submit">送信</button>
</form>
Flaskで受け取る
from flask import request
@app.route("/form", methods=["GET", "POST"])
def form():
if request.method == "POST":
username = request.form["username"]
return f"こんにちは、{username}さん!"
return render_template("form.html")
このようにして、ユーザーの入力をアプリに反映できます。
よくあるエラーと注意点
Flaskを使っているといくつかのエラーに遭遇することがあります。例えば、以下のようなものです。
- ImportError:Flaskがインストールされていない場合に発生します。
- TemplateNotFound:
templates
フォルダの場所やファイル名が間違っているときに出ます。 - ポート競合:すでに5000番ポートを使っているアプリがある場合、別のポートを指定する必要があります。
また、本番環境ではdebug=True
を外すことを忘れないようにしましょう。
Flaskの応用テクニック
基本が理解できたら、さらに便利な機能に挑戦してみましょう。
- Blueprintを使って大規模アプリを分割管理
- SQLAlchemyを使ったデータベース連携
- Flask-WTFでフォームバリデーション
- REST APIの構築
これらを組み合わせれば、ブログ、チャットアプリ、APIサーバーなどさまざまなWebアプリを開発できます。
Python初心者におすすめのサービス
「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、
テックアカデミーがおすすめです。
AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。
さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。
また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。
書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。
また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。
こちらのリンクから詳細をチェックしてみてください。
まとめ
Flaskは軽量で学習しやすいWebフレームワークです。少ないコードでアプリを動かせるので、初心者が最初に学ぶのに最適です。基本を押さえたら、データベースやAPI連携にも挑戦してみましょう。
以下のリンクから、
SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。
SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

コメント