Pythonで「Twitter風の投稿アプリ」を作ってみた【Flask超入門】

プログラミング

「SNSアプリを自分で作ってみたい。でも、難しそう…」

そんなお悩みをお持ちではありませんか?

実は、PythonとFlaskを使えば、初心者でも簡単にTwitter風の投稿アプリが作れます。

本記事では、小学生でも理解できるやさしい言葉で、SNSアプリの作り方をステップごとに解説します。

この記事を読めば、次のようなことがわかります。

• Flaskを使ってWebアプリを作る方法

• 投稿内容を保存・表示する仕組み

• 使いやすいアプリを自分で作るコツ

「プログラミングの楽しさ」を実感できる内容です。ぜひ最後まで読んで、あなただけのアプリを作ってみましょう!

Flaskとは?Pythonとの関係性【Flask Python】

Flaskが選ばれる理由とは?

結論:Pythonで手軽にWebアプリが作れるからです。

Pythonは初心者に人気のあるプログラミング言語です。

FlaskはそのPythonでWebサイトやWebアプリを作るための軽量な枠組み(フレームワーク)です。

例えば、以下のような理由でFlaskが選ばれています。

• 必要な機能だけを自由に追加できる

• 初期設定が少なく、すぐ動かせる

• 小さなアプリから大きなシステムまで対応可能

• 学習用として使いやすい

他のフレームワーク(Djangoなど)よりシンプルで、学びやすいのが特長です。

つまり、Flaskは「作りたいものがある初心者」にぴったりな選択肢なのです。

他の方法との違いも解説

結論:Flaskは「自由さ」と「軽さ」が魅力です。

他のフレームワークやサービス(Django、PHP、WordPressなど)との違いは、以下のような点です。

Django:全部入りの高機能だが学習量が多い

PHP:昔から使われているがコードが複雑になりやすい

WordPress:簡単にブログが作れるがカスタマイズは制限あり

一方、Flaskは、

• 必要な部品を自分で選んで組み立てられる

• コードが見やすく、初学者でも理解しやすい

• 実際にWebサイトの基礎が身につく

というメリットがあります。

Twitter風アプリで学べること【Twitter風 アプリ 作り方】

実際にできること一覧

結論:投稿→保存→表示の流れを体験できます。

Twitter風アプリとは、簡単に言えば以下のようなことができるアプリです。

• 投稿フォームから文章を入力する

• 投稿ボタンを押すと、データが保存される

• 保存された投稿が一覧で表示される

これだけでも十分に「Webアプリの基本構造」を学ぶことができます。

さらに応用すれば…

• 投稿の削除・編集

• 日時の表示

• ログイン機能の追加

なども可能になります。

どんな場面で役立つのか

結論:プログラミングの理解と自作アプリの第一歩になります。

このTwitter風アプリを作ることで、以下のようなスキルが身につきます。

• Webアプリの動きが理解できる

• フォーム送信とサーバー処理の関係がわかる

• Pythonで作れることの幅が広がる

また、プログラミングの成功体験にもつながるため、次の学習意欲にもつながります。

Flaskの開発環境を準備しよう【Flask 開発環境】

必要なソフトと準備手順

結論:PythonとFlaskをインストールするだけでOKです。

以下のステップで開発環境を整えましょう。

1. Pythonをインストール(公式サイト:https://www.python.org/)

2. コマンドで仮想環境を作成

3. Flaskをインストール

1
2
3
python -m venv venv
source venv/bin/activate  # Windowsは venv\Scripts\activate
pip install flask

これで準備完了です。

仮想環境の使い方(初心者向け)

結論:他のアプリに影響を与えないために仮想環境を使います。

仮想環境とは、アプリごとに専用の作業空間を作る機能です。

これによって、異なるプロジェクトが混ざらずに管理できます。

• 「プロジェクトAではFlask 2.0、プロジェクトBではFlask 3.0を使いたい」といった場合に便利です。

仮想環境は以下のように使います。

• source venv/bin/activate で有効化

• deactivate で終了

初心者でもすぐ使えるので、Flaskアプリには必ず導入しましょう

投稿アプリを実装してみよう【投稿アプリ Python】

フォルダ構成と基本ファイル

結論:決まった形でフォルダを分けると見やすくなります。

以下のような構成が基本です。

1
2
3
4
5
6
myapp/
├── app.py
├── templates/
│   └── index.html
├── static/
│   └── style.css

• app.py:Pythonのメインファイル

• templates/:HTMLファイルを置く場所

• static/:CSSや画像などを置くフォルダ

投稿フォームの作成方法

結論:HTMLでフォームを作り、Flaskで処理をします。

index.html に以下のようなコードを書きます。

1
2
3
4
<form method="POST">
  <input type="text" name="content" placeholder="投稿内容を入力">
  <button type="submit">投稿</button>
</form>

Python(Flask)側で受け取る処理は次のとおりです。

1
2
3
4
5
6
7
8
9
from flask import Flask, render_template, request
app = Flask(__name__)
posts = []
@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        content = request.form["content"]
        posts.append(content)
    return render_template("index.html", posts=posts)

これで「投稿→保存→表示」が実現します。

投稿内容の保存と一覧表示

結論:データをリストやファイルに保存して、HTMLで表示します。

まず、Python側で posts というリストに投稿内容を追加します。

次に、index.html でその内容を表示します。

1
2
3
4
5
<ul>
  {% for post in posts %}
    <li>{{ post }}</li>
  {% endfor %}
</ul>

これだけで、投稿内容が一覧で表示されるようになります。

機能を追加してみよう【Flask 投稿機能 拡張】

日時表示・投稿削除機能

結論:機能を少し足すことで、アプリの幅が広がります。

投稿と一緒に、投稿した時刻も記録するには次のようにします。

1
2
3
4
5
6
7
8
from datetime import datetime
@app.route("/", methods=["GET", "POST"])
def index():
    if request.method == "POST":
        content = request.form["content"]
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M")
        posts.append({"content": content, "time": timestamp})
    return render_template("index.html", posts=posts)

HTML側で日時を表示するには:

1
2
3
4
5
<ul>
  {% for post in posts %}
    <li>{{ post.time }} - {{ post.content }}</li>
  {% endfor %}
</ul>

見た目を少し整える(HTMLとCSS)

結論:見た目を整えることで、使いやすさがアップします。

static/style.css に以下のように記載します。

1
2
3
4
5
6
7
8
9
10
11
body {
  font-family: sans-serif;
  padding: 20px;
}
form {
  margin-bottom: 20px;
}
li {
  border-bottom: 1px solid #ccc;
  padding: 10px 0;
}

index.html の <head> 部分でCSSを読み込みましょう。

1
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">

完成したアプリを動かそう【Flask アプリ 実行】

ローカルで動かす手順

1
flask run

これでブラウザで http://127.0.0.1:5000/ を開けば、アプリが動きます。

よくあるエラーと対処法

SyntaxError:カッコやコロンの閉じ忘れが原因です。

ModuleNotFoundError:Flaskがインストールされていない可能性があります。

応用するならどんな道がある?【Flask 学習 応用】

データベース連携やログイン機能へ発展

• SQLiteなどのデータベースでデータを保存

• ユーザーごとの投稿機能(ログイン・登録)

このあたりは以下の記事も参考になります:

👉 Pythonで生徒の成績を予測するAI

学んだことを活かすには

• 自分専用の掲示板

• 勉強記録アプリ

• おうちのメッセージボード

自分だけのアイデアでアプリを作ると楽しく学べます。

まとめ:Twitter風アプリ作成の効果【Flask Python 学習効果】

このアプリを作ることで得られる効果は次のとおりです。

• Webアプリ開発の基礎がわかる

• Pythonの応用力が高まる

• 「自分で作れた!」という自信が得られる

Flaskで作るSNS風アプリは、学びに最適な題材です。

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