# 【入門初心者向け】PythonでWebアプリを作ってみた！開発方法徹底解説！

> 当サイト【スタビジ】の本記事では、PythonのWebアプリケーションフレームワークを用いてWebアプリを開発していく方法を徹底解説していきます。実際にDjangoでの実装とFlaskでの実装をおこなっていったあと、勉強法についても見ていきましょう！

- URL: https://toukei-lab.com/python-webapp
- 公開: 2022.11.29 / 更新: 2025.02.22
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
本記事では、PythonのWebアプリケーションフレームワークを用いてWebアプリを開発していく方法を徹底解説していきます。Pythonに慣れるためにはまず動くものを作ってみることがおすすめです！実際にDjangoでの実装とFlaskでの実装をおこなっていったあと、勉強法についても見ていきましょう！
:::

こんにちは！

データ分析したりAI開発したりする会社を経営しているウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

Pythonというとデータ分析のイメージが強いですが、Pythonでは<mark>簡単にWebアプリケーションを開発</mark>することができます。

この記事では、そんなPythonで開発するWebアプリについてまとめていきたいと思います！

:::talk{who="umatan"}
Pythonを使えば分析から開発まで一気通貫でできてしまうんだ！！
:::

ちなみにPythonによるWebアプリ開発をガッツリ学びたい人は、ぜひ当メディアが運営する「[スタビジアカデミー](https://toukei-lab.com/achademy/)」という教育サービスを検討してみてください！

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

ここではAIやデータサイエンスにまつわる様々なコースを展開していて、Djangoを使ったアプリ開発のコースもございます！

:::box
[スタアカ：DjangoでAIアプリを作ってみよう](https://toukei-lab.com/achademy/courses/django-ai/)

[![スタアカ「DjangoでAIアプリを作ってみよう！」コース](/wp-content/uploads/2026/10/achademy-course-django-ai.jpg)](https://toukei-lab.com/achademy/courses/django-ai/)
:::

このコースではDjangoで画像生成のアプリを構築していきます。OpenAIの[DALL･E](/dalle)のAPIを使っていきますよー！

独学で学ぶライトなプランと現役データサイエンティストがメンターとして付きながら質問もし放題のプランがあるので挫折せず進めることができます！

なかなか自分一人で進める自信のない人、モチベーションが続かない人にもオススメです！

ご受講お待ちしております！

＼今すぐ試す／**[スタアカの受講はこちら](https://toukei-lab.com/achademy/courses/django-ai/)**

## PythonでのWebアプリ開発に必要なこと

![stories pc](/wp-content/uploads/2021/01/All-the-data-bro-e1613475965440-1024x789.png)

PythonにはいくつかのWebアプリケーションフレームワークがありますが、ここでは**FlaskとDjango**の2つを使ってWebアプリを開発していきたいと思います！

ほかのPythonのWebアプリケーションフレームワークについては知りたい方は以下の記事をチェックしてみてください！

:::ref
<https://www.netsolutions.com/insights/top-10-python-frameworks-for-web-development-in-2019/>
:::

それではPythonでのWebアプリ開発に必要なことについて簡単にまとめておきましょう！

### Webアプリケーションフレームワークの理解

当たり前ですが、この記事で学んでいくWebアプリケーションフレームワークの理解は間違いなく必要です。

また、<mark>その前手にPythonのそもそものある程度の理解が必要です。</mark>

もしPythonはほとんど触ったことがない・・・という方は是非以下の記事を見てみてください！

<https://toukei-lab.com/python-learn>

Pythonの0からの勉強法が学べます。

Pythonの基本を理解した上で是非FlaskとDjangoについて学んでいきましょう！

FlaskとDjangoの違いについてまずは簡単に知りたい方は以下の記事をご覧ください！

<https://toukei-lab.com/flask-django>

### データベース・Web・フロントエンドなどの知識

基本的にはPythonの構文が分かって[Flask](/python-flask)や[Django](/django-study)の特殊な記法について理解できればWebアプリを開発することは可能です。

ただ、<mark>データベースやWebの基本的な知識やHTMLやCSS・Javascriptなどのフロントエンド周りの知識も必要</mark>です。

### どんなWebアプリを作りたいかという目標

![Goal](/wp-content/uploads/2017/11/Goal-amico-e1618838970378.png)

また、なんとなくWebアプリを開発してみたいという心持ちでは続かないので、<mark>ぜひ何か自分で作りたいWebアプリのイメージを持っておきましょう。</mark>

そして、その上でそのWebアプリが実現する顧客体験や動線設計やデータの持ち方などもドキュメントに落としておくと開発がしやすいです。

本格的に業務で実装する際はもちろん要件定義やデータベース設計など必ずドキュメントにしておかないといけませんが、趣味レベルで開発する際もある程度のイメージはドキュメントに落としておきましょう！

:::talk{who="umatan"}
明確な目標はモチベーションにもつながるよ！
:::

## PythonでのWebアプリ開発：Django編

![Django](/wp-content/uploads/2020/04/django.jpg)

まずは、Djangoを用いてWebアプリを開発していきましょう！

### Djangoとは

Djangoは2005年に開発されたDjangoのWebアプリケーションフレームワークで、<mark>デフォルトでWeb開発に必要な機能が一通り入っています。</mark>

Djangoは元々ニュースサイト管理のためにアメリカで開発されたフレームワークで、名前はギタリストから取ったそうです。

大規模サービス開発に向いていて2000企業ほどの企業に利用されています。

UGC型のインスタグラムやピンタレストなどに主に利用されています。

![Django利用企業](/wp-content/uploads/2020/04/django-company-min.jpg)(引用元：<https://stackshare.io/Django>)

Djangoのドキュメントは以下です。

:::ref
[Djangoの公式ドキュメント](https://docs.djangoproject.com/ja/3.0/)
:::

### Python×DjangoでWebアプリを開発

それではDjangoでWebアプリ開発をしてみましょう！

ここでは、本当に基本の「Hello world」と表示されるWebサイトを作っていきます。

:::warn
OS：MAC\
開発エディター：Visual studio code
:::

#### 仮想環境作成

仮想環境を作らなくても問題ないですが、<mark>ライブラリのバージョンを管理するため仮想環境</mark>を作っていきます。

まずは、好きな名前のフォルダを作成しフォルダのディレクトリに遷移しましょう！

そして以下のコマンドをVisual studio code上のターミナルに記載して仮想環境を作っていきます。

```python
python -m venv [環境名]
```

```python
python -m venv myvenv
```

これでmyvenvという仮想環境を作ることが出来ました。

仮想環境は開発するアプリケーションによってPythonのライブラリのバージョンを管理するために作ります。

続いて仮想環境に入っていきます。

以下のコマンドで仮想環境に入ることが出来ます。

```python
source [環境名]/bin/activate
```

```python
source myvenv/bin/activate
```

#### 必要なライブラリをインストール

仮想環境に入ったら、requirements.txtというファイルを作成し必要なライブラリをインストールしていきます。

これは、ライブラリを一括でインストールするためのファイルです。

厳密にはrequirements.txtである必要はありませんが、慣習でrequirements.txtが使われることが多くなっています。

必要最低限のライブラリを記載しておきましょう

:::box
Django==3.1.5

django-heroku==0.3.1

gunicorn==20.0.4
:::

以下のように記述することで、記載したライブラリをインストールすることができました。

```python
pip install -r requirements.txt
```

ちなみに以下のように記述することで現在の環境のライブラリを一括でrequirements.txtに記述して保存することができます。

```python
pip freeze > requirements.txt
```

普段使っている環境から新しい環境に同様のライブラリを適用される場合はこのように記述するとよいでしょう。

#### プロジェクトの作成

さて、ここから実際にDjangoでWebアプリ実装をおこなっていきます！

まずDjangoのプロジェクトを作成していきます。

mysiteという名称で作っていきましょう！

```python
django-admin startproject [プロジェクト名] .
```

```python
django-admin startproject mysite .
```

これにより以下のようにMysiteディレクトリが出来ます。

![Django](/wp-content/uploads/2021/02/84db38f5462338b36e00ec0c2f440832.png)

続いて、settings.py以下の部分を以下のように変更しておきましょう！

【変更前】

```python
LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'
```

【変更後】

```python
LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'
```

続いて、この後作るアプリケーション名をsettings.pyのINSTALLED_APPSに記載しましょう！

今回はappという名前のアプリを作成していく予定なので、以下のように記述します。

```python
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]
```

続いてデータベースのセットアップを行っていきます。

```python
python manage.py migrate
```

これによりデータベースが作成されます。

db.sqlite3という名前でデータベースファイルが作成されているかと思います。

さて、それでは以下のようにサーバーを起動させてみましょう！

```python
python manage.py runserver
```

:::box
Starting development server at http\://127.0.0.1\:8000/
:::

ターミナルに出力されたURLを開き以下のように表示されたらひとまず成功です。

![Django　チュートリアル](/wp-content/uploads/2021/02/3570efdfb4656ed360a6391ac951f8f1.jpg)

サーバーの起動はCtrl+Cで停止で止めることが可能です。

#### Appを作成

プロジェクトが立ち上がったのが確認できたのでアプリケーションを作成していきましょう！

:::talk{who="robotan"}
プロジェクトとアプリケーションの違いって？？
:::

プロジェクトとアプリケーションの違いは以下です。

> プロジェクトとアプリの違いは何でしょうか？ アプリとは、ウェブログシステム、公的記録のデータベース、小規模な投票アプリなど、何かを行う Web アプリケーションです。プロジェクトは、特定のウェブサイトの構成とアプリのコレクションです。プロジェクトには複数のアプリを含めることができます。 アプリは複数のプロジェクトに存在できます。\
> （引用元：[Django公式サイト](https://docs.djangoproject.com/ja/3.1/intro/tutorial01/)）

複数のアプリケーションを束ねる存在がプロジェクトであるイメージです。

以下のコマンドでアプリケーションを作成していきます。

```python
python manage.py startapp [アプリケーション名]
```

appという名前で作成しておきましょう！

```python
python manage.py startapp app
```

appのディレクトリが出来ているはずです。

#### urls.pyを変更

Mysiteのurls.pyを開いて一部設定を変更します。

【変更前】

```python
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]
```

【変更後】

```python
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include("app.urls")),
]
```

この部分の意味はトップドメインに遷移した場合はappフォルダのurls.pyファイルを参照してねという意味です。

さて続いて、その参照元となっているapp/urls.pyを作成していきましょう。

app/urls.pyはデフォルトでは作成されていないので、自分で作ります。

```python
from django.urls import path
from app import views

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
]
```

#### views.pyを修正

views.pyはappのファイルの中でユーザーのコールに対してどのテンプレートを出すかなど司令塔の役割をします。

サッカーで言うミッドフィルダーみたいな役割のファイルです。

ここには、以下のように記述します。

```python
from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = 'app/index.html'
```

Djangoには簡単に表示をしてくれるテンプレートが用意されており、今回はその中からTemplateViewを使います。

ここでは、後ほど作成するapp/index.htmlを呼んでいます。

#### templatesフォルダにhtmlファイルを作成

templatesフォルダを作成し、そのさらに配下にappというフォルダを作成しましょう！

そしてその下にindex.htmlというファイルを作成します。

すなわちディレクトリ構造は以下のようになっています。

:::box
app/templates/app/index.html
:::

この時アプリケーション名appと一致させたディレクトリ名にしましょう！

:::talk{who="robotan"}
なんでこんな階層になるのー？？
:::

:::talk{who="umatan"}
これはテンプレートのミスマッチをなくすためなんだ！
:::

> Django は、名前がマッチした最初のテンプレートを使用するので、もし *異なる* アプリケーションの中に同じ名前のテンプレートがあった場合、Django はそれらを区別することができません。そのため、Django に正しいテンプレートを教えてあげる必要がありますが、一番簡単な方法は、それらに *名前空間を与える* ことです。アプリケーションと同じ名前をつけた *もう一つの* ディレクトリの中にテンプレートを置いたのは、そういうわけなのです。\
> （引用元：[Django公式サイト](https://docs.djangoproject.com/ja/3.1/intro/tutorial01/)）

index.htmlには表示したいhtmlを記載してあげましょう！

```text
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>app</title>
</head>
<body>
    <h1>Hello World!</h1>
</body>
</html>
    
```

これで本当に基本的なアプリケーションが作成できました。

改めて

```python
python manage.py runserver
```

をしてみましょう！

Hello worldがしっかり表示されたら成功です。

ここまで出来れば、後はアプリケーションに肉付けをしていくだけです。

#### 管理ユーザーを作成して管理画面に入る

一旦Ctrl + Cでサーバーを止めてあげましょう。

最後に管理ユーザーを作成して管理画面に入ってみましょう！

Djangoでは、管理画面がデフォルトで用意されていてユーザーの管理やデータの管理をすることができ非常に便利です。

ターミナル上で以下のように記載して管理ユーザーを作成します。

```text
python manage.py createsuperuser
```

```text
```

するとユーザー名・メールアドレス・パスワードを要求されるのでそれぞれ入力しましょう！

メールアドレスは入力しなくても大丈夫です。

入力が完了し、Superuser created successfully.と表示されたら管理ユーザーの作成成功です！

もう一度改めて、

```python
python manage.py runserver
```

でサーバーを起動してあげましょう！

URLのディレクトリにadminと追加してあげることで管理者用の画面に入ることが出来ます。

:::box
<http://127.0.0.1:8000/admin/>
:::

ログイン画面に先ほど作成したユーザー名とパスワードを記入してあげれば完了です！

![Django管理画面](/wp-content/uploads/2021/04/a15fd1ff195d83af15852d596b405e31-1024x505.png)

ログインに成功すると管理画面が出てきます。

![Django管理画面](/wp-content/uploads/2021/04/d6d4163ee88901eaa153a300e8bbd940-1024x442.png)

ここからユーザーの管理などを行えますよ！

以下の記事でより詳しくDangoの実装についてまとめています。

<https://toukei-lab.com/django>

こちらの記事では、[Heroku](https://jp.heroku.com/)というサービスを使って他の人も見れるようにデプロイしていますよー！

今回は自分のローカル環境で行いましたが、[Docker](/docker_python)というコンテナサービスを使うことで環境を汚さずにかつ他の人と共有して開発を進めることができます。

また、アプリを外部に公開する方法として[ngrok](/ngrok)を使った方法もあるので参考にしてみて下さい。

## PythonでのWebアプリ開発：Flask編

![Flask](/wp-content/uploads/2020/04/flask.jpg)

続いて、Flaskについて見てみましょう！

### Flaskとは

Flaskは<mark>2010年にリリースされたPythonのWebアプリケーションフレームワーク</mark>で、軽量で実装できる機能が必要最低限に収まっていことが特徴です。

ちなみに**開発者のArminはエイプリルフールのジョークとして世にリリース**したそう。

だけど反響が大きくてこれだけ有名になってしまったんだそう。

FlaskではJinja2というテンプレートエンジンを用いていて特殊な記法を用いることで簡易的にWebアプリケーションを開発することが可能。

ちなみに簡易的なフレームワークとはいえ、<mark>様々な企業が実際に利用しています。</mark>

有名どころだと、あの**ネットフリックス**もFlaskを用いてWebアプリケーションを開発しています。

![Flask利用企業](/wp-content/uploads/2020/04/flask_company-min.jpg)

（引用元：<https://stackshare.io/flask>）

他にも800以上の企業に利用されています。

### Python×FlaskでWebアプリ開発をしてみよう！

先程Djangoでは簡単なHello worldを出力するWebアプリを作りましたが、Flaskでは、もう少し複雑な処理させてみたいと思います。

ここでは、

**数値を入力したら[有意差](/significant-difference)を算出してくれるWebアプリケーション**を作成していきます。

データのやり取りや有意差計算を行うのはPythonになりますが、<mark>表示する画面を作るのはHTML・CSS・Javascriptになります。</mark>

Ajaxで非同期にデータをサーバーサイドに渡しPythonで有意差計算をしてクライアントサイドに戻し表示するという流れになります。

そして、有意差計算のための数値を入れる画面をHTML・CSS・Javascriptを使って作ります。

#### Pythonでのロジック実装

PythonのFlaskを使ってロジックを作っていきます。

以下がコードになります。

```python title="sig.py"
import pandas as pd
import numpy as np
from scipy.stats import chi2_contingency
from flask import Flask, redirect ,request,render_template,jsonify
from flask_bootstrap import Bootstrap
import json
import requests

nc = Flask(__name__)

@nc.route("/")
def check():
    return render_template('sig.html')

@nc.route('/output', methods=['POST'])
def output():
    #json形式でURLを受け取る
    allA = int(request.json['allA'])
    allB = int(request.json['allB'])
    CVA = int(request.json['CVA'])
    CVB = int(request.json['CVB'])

    a,b,c,d=chi2_contingency(np.array([[allA,CVA],[allB,CVB]]))

    return_data = {"result":b}
    return jsonify(ResultSet=json.dumps(return_data))

if __name__ == '__main__':
    nc.run(host="127.0.0.1", port=8080)
```

順番にコードを見ていきましょう！

```python
nc = Flask(__name__)
```

こちらはFlaskを定義する部分。おまじないみたいなモノです。

最終的にここで定義したncをrunしてWebアプリケーションを走らせていきます。

```python
@nc.route("/")
def check():
    return render_template('sig.html')
```

続いて@nc.routeでルートを指定します。Webサイトで言うURLにあたります。

ここでsig.htmlという画面表示部分をレンダリングしています。

sig.htmlについては後で見ていきましょう！

```python
@nc.route('/output', methods=['POST'])
def output():
    #json形式でURLを受け取る
    allA = int(request.json['allA'])
    allB = int(request.json['allB'])
    CVA = int(request.json['CVA'])
    CVB = int(request.json['CVB'])

    a,b,c,d=chi2_contingency(np.array([[allA,CVA],[allB,CVB]]))

    return_data = {"result":b}
    return jsonify(ResultSet=json.dumps(return_data))
```

この部分では、画面上で入力してもらった数値を動的にAjaxでPOST形式でサーバーサイドに送信しています。

今回はAとBのパターンの有意差は[カイ二乗検定](/chisq-test)を行って算出しています。

Webマーケティングでありがちなメールの[ABテスト](/ab-test)などを行えます。

#### 画面を表示する部分を作成する

ロジック部分が出来上がったので、続いてWebアプリケーションの表示部分を作っていきます！

コードは以下です。

```html title="sig.html"
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>テキスト分析</title>
    <!-- <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}" /> -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
</head>
<body>
<div class="container">
<h1 class="text-info">
<br>ABテストの有意差計算</h1>
&nbsp;
  <form class="form-inline">
  <div class="form-group">
    <label>A</label>
    <div class="row">
      <div class="col-md-6">
        <input class="form-control" type="text" id="allA" name="allA" placeholder="全体数" required/>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="row">
      <div class="col-md-6">
        <input class="form-control" type="text" id="CVA" name="CVA" placeholder="CV数" required/>
      </div>
    </div>
  </div>
  </form>
  <form class="form-inline">
  <div class="form-group">
    <label>B</label>
    <div class="row">
      <div class="col-md-6">
        <input class="form-control" type="text" id="allB" name="allB" placeholder="全体数" required/>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="row">
      <div class="col-md-6">
        <input class="form-control" type="text" id="CVB" name="CVB" placeholder="CV数" required/>
      </div>
    </div>
  </div>
  </form>
  &nbsp;
  <button class="btn btn-info" id="button1">有意差算出</button>
  <div></div>
  &nbsp;
  <font color='696969' size=5><div id="match1" >有意差は</div></font>
  <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
  <!-- temp -->
  <script type="text/javascript">
  $(function(){
    $("#button1").on("click", function(){
      var textData = JSON.stringify({"allA":$("#allA").val(),"allB":$("#allB").val(),"CVA":$("#CVA").val(),"CVB":$("#CVB").val()});
      $.ajax({
        type:'POST',
        url:'/output',
        data:textData,
        contentType:'application/json',
        // 非同期通信が成功したら実行される
        success:function(data){
          var result = JSON.parse(data.ResultSet).result;
          if(result>0.05){
          $("#match1").text("有意であるとは言えない");
          }
          else if(result>0.01){
          $("#match1").text("95％有意である");
          }
          else{
          $("#match1").text("99％有意である");
          }
        }
      });
     });
   });
  </script>
  <!-- temp -->
</body>
</html>
```

ここでは、簡単に見やすいUIを作成することの出来るBootstrapというフレームワークを使っています。

HTMLやCSSの細かい知識がなくても比較的簡単に綺麗な画面を作成することができますが、ある程度の知識は必要です。

BootstrapはTwitter社が作成したフレームワークです。

Flaskのルールとして、HTMLファイルはPythonファイルと同じディレクトリ内に「**templates**」という名前のファイルを作成し、その中に格納しておかなくてはいけませんので注意しましょう。

CSSファイルやJSファイルは「**static**」ファイルに入れる必要があるのですが、今回はHTMLの中で全て完結させたので問題ありません。

デプロイは[Heroku](https://jp.heroku.com/)を使っておこないました。

<https://toukei-lab.com/heroku-python>

こちらのFlaskの実装に関しては以下の記事でより詳しく解説しているのでぜひチェックしてみてください！

<https://toukei-lab.com/python-flask>

## PythonでのWebアプリ開発のおすすめ勉強法

![pc python](/wp-content/uploads/2019/08/Work-time-amico-min-e1613688546361-1024x875.png)

ここまででPythonでのWebアプリ開発についてDjangoとFlaskでの実装をまとめてきました。

最後にWebアプリ開発を学ぶための勉強ロードマップについて簡単に見ていきましょう！

Webアプリ開発を学んでいくためには、Pythonの基礎を学び簡単にWebアプリを作ってみて、基礎固めをしたあとにDjangoやFlaskなどの実装を細かく学んでいく流れがスムーズです。

### Pythonのできることから開発のさわりまで学ぶ

手前味噌ですが、<mark>まずPythonについて理解してみるのにオススメなコースを僕自身が出しています！</mark>

Pythonの基礎から簡単なWebアプリ開発まで網羅しています。

[**【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース**](https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084)

[![Udemy python](/wp-content/uploads/2020/04/Udemy-me2-min-1024x554.jpg)](https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td>僕自身！今なら購入時に「NZWCLGF4BTZENY6E」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！</td>
</tr>
<tr>
<th>【時間】</th>
<td><span>3.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級～中級</span></td>
</tr>
</tbody>
</table>

Pythonで出来ることのうち以下の5つを網羅して学んでいきます。

:::box
**・データ集計・加工・描画**\
**・機械学習を使ったモデル構築**\
**・Webスクレイピング**\
**・APIの利用**\
**・Webアプリケーション開発**
:::

データ集計・加工・描画と機械学習モデル構築に関しては[Kaggle](/kaggle)というデータ分析コンペティションのWalmartの小売データを扱いながら学んでいきます。

[Webスクレイピング](/python-scraping)とAPI利用と[Webアプリケーション開発](/python-webapp)に関しては、楽天の在庫情報を取得してSlackに自動で通知するWebアプリケーションを作成して学んでいきます。

Pythonで何ができるのか知りたい！という方には一番はじめにまず受けていただきたいコースです！

Twitterアカウント([@statistics1012](https://twitter.com/statistics1012?lang=ja))にメンションいただければ1500円になる講師クーポンを発行いたします！

::button[このコースを見てみる]{href="https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084" note="＼30日以内なら返金無料／"}

### Pythonからデータサイエンスから開発から最新のAIまでガッツリ学ぶ

ガッツリ学びたい人は、ぜひ当メディアが運営する「[スタビジアカデミー](https://toukei-lab.com/achademy/)」という教育サービスを検討してみてください！

:::box
**AIデータサイエンス特化スクール「スタアカ」**

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)
:::

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

ここではAIやデータサイエンスにまつわる様々なコースを展開していて、Djangoを使ったアプリ開発のコースもございます！

:::box
[スタアカ：DjangoでAIアプリを作ってみよう](https://toukei-lab.com/achademy/courses/django-ai/)

[![スタアカ「DjangoでAIアプリを作ってみよう！」コース](/wp-content/uploads/2026/10/achademy-course-django-ai.jpg)](https://toukei-lab.com/achademy/courses/django-ai/)
:::

このコースではDjangoで画像生成のアプリを構築していきます。OpenAIの[DALL･E](/dalle)のAPIを使っていきますよー！

独学で学ぶライトなプランと現役データサイエンティストがメンターとして付きながら質問もし放題のプランがあるので挫折せず進めることができます！

なかなか自分一人で進める自信のない人、モチベーションが続かない人にもオススメです！

ご受講お待ちしております！

### Djangoだけを学ぶ

Djangoだけを学ぶのであれば以下の講座が圧倒的に分かりやすくておすすめです。

[**【徹底的に解説！】Djangoの基礎をマスターして、3つのアプリを作ろう！**](https://trk.udemy.com/XmeVEy)

[![Udemy Django](/wp-content/uploads/2021/01/f6da46df1b3c22ca760c0c5c2645b43e.jpg)](https://trk.udemy.com/XmeVEy)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td>CODOR代表取締役CEO</td>
</tr>
<tr>
<th>【時間】</th>
<td><span>19時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級～中級</span></td>
</tr>
</tbody>
</table>

基本的な部分から分かりやすく解説してくれるUdemyの中でもオススメの講座です。

To do アプリや社内SNSアプリを作っていきます。

また、VPSサーバーを借りて実際に作成したアプリケーションをデプロイしていく過程も学ぶことが出来るので非常に勉強になるコースです。

::button[このコースを見てみる]{href="https://trk.udemy.com/XmeVEy" note="＼30日以内なら返金無料／"}

### Flaskを学ぶ

またFlaskであれば以下の講座がおすすめです。

**[【画像判定AIアプリ開発・パート１】Tensorflow・Python・Flaskで作る画像判定AIアプリ開発入門](https://trk.udemy.com/kOqmZLcourse%2Ftensorflow-advanced%2F)**

[![Udemy　コース　AIFlask](/wp-content/uploads/2020/04/udemy-python7-min.jpg)](https://trk.udemy.com/kOqmZLcourse%2Ftensorflow-advanced%2F)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中4.5点" data-value="4.5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td><span>起業家AIエンジニア</span></td>
</tr>
<tr>
<th>【時間】</th>
<td><span>3.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>中級</span></td>
</tr>
</tbody>
</table>

Flaskを使って画像分類のWebアプリケーションを作っていきます。

名物講師の井上さんのコースです。

<mark>さらに最終的にはXcodeでiOS化も行っていくという盛りだくさんのコース</mark>。

ディープラーニングとFlaskでの開発を同時に学べるお得な内容になっていますよー！

レベルは少々高いですが実用的なおすすめのコースに仕上がっています！

::button[このコースを見てみる]{href="https://trk.udemy.com/kOqmZLcourse%2Ftensorflow-advanced%2F" note="＼30日以内なら返金無料／"}

Udemyは本当にオススメのサービスです！

Udemyのおすすめプログラミングコースは以下の記事でより詳しくまとめていますので是非チェックしてみてください！

<https://toukei-lab.com/udemy-recommend-programming>

## PythonでのWebアプリ開発まとめ

ここまでご覧いただきありがとうございました！

本記事では、**<mark>PythonでのWebアプリ開発についてDjangoやFlaskでの実装から勉強法</mark>**&#x307E;でをまとめてきました。

PythonでWebアプリ開発ができるようになると世界が広がります。

ぜひここでまとめてきた内容を振り返ってPythonでのWebアプリ開発をおこなってみましょう！

ちなみに当メディアが運営する「[スタアカ](https://toukei-lab.com/achademy/)」というスクールの「[オーダーメイドプラン](https://toukei-lab.com/achademy/ordermade/)」ではデータサイエンスについて学びつつ、一緒にWebアプリを伴走しながらサポートして作ることもできるので一人だと不安・・・という方は是非検討してみてください！

:::box
**[業界最安級AIデータサイエンス特化スクール：スタアカ（スタビジアカデミー）](https://toukei-lab.com/achademy/)**
:::

以下の記事でPythonの勉強法についてまとめていますのでぜひ参考にしてみてください。

<https://toukei-lab.com/python-learn>

また最近ではPythonのWebアプリのフレームワークで「[Streamlit](/streamlit)」がデータサイエンスの分野でよく利用されているので参考にしてみて下さい。

<https://toukei-lab.com/streamlit>

またWebアプリ開発以外のPythonでできることについては以下にまとめています。

<https://toukei-lab.com/python-can>

そしてやはりPythonの強みである機械学習実装に関しては以下の記事でまとめていますのでぜひチェックしてみてください！

<https://toukei-lab.com/machine-learning-study>