#はじめに
本ページは、Djangoを使用した際のシステムアーキテクチャを整理したもの。
システムアーキテクチャとは、サーバ、ミドルウェア構成、どこに何を配置するのか、なぜそれを配置するのか、といった内容。
Udemyの【3日でできる】Django 入門 ( Python 3 でウェブアプリを作って AWS EC2 で公開!)を受講した際に講座内で触れられていなかった、システム構成の背景を整理した。
#Djangoを使用したWebアプリケーションの構成
###1. 構成とその理由
中規模~大規模なシステムをWebサーバはNGinxを、APサーバはGunicornで、開発フレームワークをFlaskではなくDjangoで構築する。
OSはLinuxを使用。
-
何故Gunicornを使用するのか?
PythonのWebアプリケーションはWSGIという仕様に則って開発されており、WSGIに則って作られたWebアプリケーションは、WSGIの仕様に則ったサーバ上で動作が出来る。WSGIに該当するのがGunicornであり、他にもuWSGIがある。
上記をふまえ、Gunicornを使用する理由は、処理が安定して早いからと言われているため。 -
何故Gunicornだけでなく、NGinxを使用するのか?
Gunicorn公式より、以下記載があり、公式推奨のため。
We strongly recommend using Gunicorn behind a proxy server.
- FlaskとDjangoの違いは?
Flsakはシンプルなフレームワーク、Djangoはリッチなフレームワーク。
API系はFlaskでやっている人を見かけることあり。
###2. 今後の学習計画
- 以下の本を読み実践して、基礎固め
- 動かして学ぶ!Python Django開発入門
数多ある本の中でこの本を選んだ背景は、一般的なWebアプリケーションの説明とDjangoの特徴(View等の使用方法)の説明がしっかり記載されていたため
- 動かして学ぶ!Python Django開発入門
- ポートフォリオを作成する(一旦以下2種のポートフォリオがあればよいと考える。)
- Djangoを使用した自分の紹介サイト
Flaskより需要があるため(少なくとも日本国内では、現時点でpythonのフレームワークに限ればDjangoのほうが需要が高い。) - Djangoを使用したAPI
Djangoおよび全体アーキテクチャの理解が可能なため
- Djangoを使用した自分の紹介サイト