PythonでFlaskを使ったWebアプリの作り方を徹底解説!初心者向けガイド

PythonでFlaskを使ったWebアプリの作り方を徹底解説!初心者向けガイド python

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がインストールされていない場合に発生します。
  • TemplateNotFoundtemplatesフォルダの場所やファイル名が間違っているときに出ます。
  • ポート競合:すでに5000番ポートを使っているアプリがある場合、別のポートを指定する必要があります。

また、本番環境ではdebug=Trueを外すことを忘れないようにしましょう。

Flaskの応用テクニック

基本が理解できたら、さらに便利な機能に挑戦してみましょう。

  • Blueprintを使って大規模アプリを分割管理
  • SQLAlchemyを使ったデータベース連携
  • Flask-WTFでフォームバリデーション
  • REST APIの構築

これらを組み合わせれば、ブログ、チャットアプリ、APIサーバーなどさまざまなWebアプリを開発できます。

Python初心者におすすめのサービス

「もっと実践的なコード例が欲しい」「自分の用途に合わせて教えてほしい」という方には、

テックアカデミーがおすすめです。

AI関連コースやシステム開発コース、アプリ開発コースなど豊富な学習が可能です。

さらに今なら無料相談でアマギフプレゼントもあるので、気軽にお申込みしてみてください。

テックアカデミー無料相談

また、プログラミング学習のプラットフォームとして、ココナラでは、現役エンジニアや経験豊富なPython講師が、あなたのレベルや目的に合わせてマンツーマンで指導してくれます。

書籍や動画ではカバーしきれない、あなた専用のカリキュラムで学べるのが最大の魅力。短時間で効率的にスキルを伸ばしたいなら、まずは出品者のサービスをチェックしてみましょう。

また、教える側としてスキルを活かして副業・独立を目指すことも可能です。
プログラミング経験やPythonの知識があれば、自分の得意分野をサービスとして出品し、全国の学習者から直接依頼を受けられます。オンラインで完結するため、場所や時間に縛られず、自分のペースで働けるのも大きなメリットです。

こちらのリンクから詳細をチェックしてみてください。

▶ ココナラを活用する

まとめ

Flaskは軽量で学習しやすいWebフレームワークです。少ないコードでアプリを動かせるので、初心者が最初に学ぶのに最適です。基本を押さえたら、データベースやAPI連携にも挑戦してみましょう。

以下のリンクから、

SESの組込みシステムから色々な不満を持ち、自社WEBサービスへ転職した実体験の記事がありますので、是非読んでみてください。とても喜びます。

SESの組込みシステムから自社WEBサービスのエンジニアに転職した話

参考リンク

コメント

タイトルとURLをコピーしました