1
0

More than 3 years have passed since last update.

Djangoを利用する際のシステムアーキテクチャの整理

Posted at

はじめに

本ページは、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等の使用方法)の説明がしっかり記載されていたため  
  • ポートフォリオを作成する(一旦以下2種のポートフォリオがあればよいと考える。)
    • Djangoを使用した自分の紹介サイト
       Flaskより需要があるため(少なくとも日本国内では、現時点でpythonのフレームワークに限ればDjangoのほうが需要が高い。)
    • Djangoを使用したAPI
       Djangoおよび全体アーキテクチャの理解が可能なため
1
0
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
0