1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

個人的な備忘録:Python の Flask や Django を使った Web3 層モデルのアプリケーションを記事としてまとめてみた

1
Last updated at Posted at 2025-01-31

はじめに

Python の Flask や Django を利用して Web3 層モデル(3-Tier Architecture)のアプリケーションを構築することは、スケーラビリティ・セキュリティ・開発効率 の面で多くのメリットがあります。

ここでは、メリット・構成・具体的なアーキテクチャ図 について解説します。

また、このブログ投稿サイトは、自分自身の備忘録としても活用する予定です。記録を積み重ねながら、メモを残していきます。

書こうと思ったきっかけ

受講している IT スクールでは、Python の Flask を使ったアプリケーション開発 を経験しましたが、Django はあまり使ったことがありませんでした。

そこで、Flask と Django の違いを体系的に整理し、自分なりに理解を深めたい と思い、今回の記事を書くことにしました。

この記事は 将来の自分への備忘録 としてまとめていますので、温かく見守っていただけると嬉しいです。

Web3層モデルとは?

Web3層モデル(3-Tier Architecture)は、以下の 3つの層 で構成される一般的なアーキテクチャです。

Screenshot 2025-02-01 at 7.44.52.png
引用画像:https://ryonotes.com/web-3-layer-architecture/

  • プレゼンテーション層(フロントエンド)

    • ユーザーと直接やりとりする部分(例: ブラウザ、SPA、HTML+CSS+JavaScript)
    • Flask や Django のテンプレートエンジン(Jinja2)を使うことも可能
    • Vue.js や React などのフロントエンドフレームワークと連携
  • アプリケーション層(バックエンド)

    • Flask や Django で構築し、ビジネスロジックを処理
    • API(REST/GraphQL)を提供 し、フロントエンドと連携
    • 認証・認可、データ処理、セッション管理 などを担当
  • データ層(データベース)

    • RDB(PostgreSQL, MySQL)や NoSQL(MongoDB, DynamoDB)を利用
    • ORM(Django ORM, SQLAlchemy)を使い、データ操作を効率化

この 3層構造 により、アプリケーションの分離性・拡張性・スケーラビリティが向上 し、保守性の高いシステム構築が可能になります。

Web3層モデルの構成図

以下は、Flask/Django をバックエンドとして利用する場合の基本的な3層モデル構成です。

┌──────────────┐       ┌──────────────────┐       ┌──────────────────┐
  フロントエンド        Flask / Django        データベース       
  (HTML / Vue.js)         (API / Logic)          (PostgreSQL)      
└──────────────┘       └──────────────────┘       └──────────────────┘
                                                        
                                                        
        HTTPリクエスト          ORM (Django ORM)         SQLクエリ
        (REST / GraphQL)                                
                                                        
 ユーザー操作              APIレスポンス               データ取得・保存

ここで紹介する内容は、AWS 環境などを想定したデプロイの一例です。

デプロイ環境例

  • フロントエンド: React / Vue.js を S3 + CloudFront にホスト
  • バックエンド: Django / Flask を ECS(Fargate)or Lambda(Serverless) で運用
  • データベース: RDS(PostgreSQL / MySQL)or DynamoDB
  • キャッシュ: Redis(ElastiCache)
  • ロードバランサー: ALB(Application Load Balancer)
  • ログ管理: CloudWatch / ELK Stack
  • CI/CD: GitHub Actions + AWS CodePipeline

Flask vs Django 比較表

簡単に Flask と Django の違い を比較してみました。気になる方は、ぜひ参考にしてみてください。

項目 Flask Django
特徴 軽量・自由度が高い フルスタック・機能が豊富
API開発 Flask-RESTful / GraphQL Django REST Framework
ORM SQLAlchemy Django ORM
セキュリティ 手動で対策が必要 CSRF / XSS 対策が標準装備
用途 小規模な API やマイクロサービス向け 大規模アプリや認証が必要なシステム向け
  • Flask → 小規模な API やマイクロサービス向け
  • Django → 大規模なアプリや CMS、認証が必要なシステム向け

Python の Flask や Django を活用することで、スケーラブルで管理しやすい 3層アーキテクチャの Web アプリ を構築できます!

まとめ

ここまで読んでいただき、ありがとうございました。
Python の Flask と Django の違いを体系的に整理することで、より理解が深まりました。

今後は、Django を使った個人開発 にも挑戦しながら、学んだことを引き続きアウトプットしていきたいと考えています。

これからも成長の過程を記録していきますので、引き続き温かく見守っていただけると嬉しいです!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?