Djangoの概要
Djangoとは
Django(ジャンゴ)はPythonで実装されたWebフレームワークで、2005年にオープンソース https://github.com/django/django (BSD license)で公開されました。 名前の由来はジプシー・スウィングのギタリストでのジャンゴ・ラインハルト (Django Reinhardt) からとったものです。
Pythonでデータ処理からWebアプリまでを同じプログラム言語で書くことができるということで、Djangoの需要も高まって来ています。
最新版は、2017年12月に9年ぶりとなるメジャーバージョンアップされて2.0系に最新版はDjango 2.0.9 (2018/11/5現在)となります。 また2.1系もリリースされていて最新版はDjango 2.1.3 (2018/11/5現在)となります。 バージョン2.0からPython3.5以上のみがサポート対象となりました。 Python2系の場合は、Django 1.11 LTSでPython 2.7をサポートしています。
日本語の情報が少なくないといわれていますが、最近では日本語の書籍や情報も増えてきています。
Djangoの考え方
All In One
開発者ができるだけ早くアプリケーションを完成できるように設計
DRY (Don't Repeat Yourself)
ソフトウェア開発全体において情報を重複させない
MTV fraemwork
Model, View, Templateフレームワーク
Reassuringly secure
セキュリティを担保している
参考:
Design philosophies - https://docs.djangoproject.com/en/2.0/misc/design-philosophies/
Djangoで作られたサイト - https://www.djangosites.org/
HotFramework - https://hotframeworks.com/languages/python
Python Frameworks
top-frameworks - https://hotframeworks.com/#top-frameworks
What Python version can I use with Django? - https://docs.djangoproject.com/en/2.0/faq/install/#what-python-version-can-i-use-with-django
Django Supported Versions - https://www.djangoproject.com/download/#supported-versions
LTS(Long Term Support)
Djangoアプリの処理の流れ
Djangoは下記のような流れでクライアントからのリクエストの処理をします。
Djangoの特徴
Webフレームワークの機能が標準整備
URLディスパッチャー
O/Rマッパー
テンプレートエンジン
ユーザー認証まわりの機能が標準装備
ユーザーモデル、グループ、権限、ユーザーセッション
管理画面の機能が標準装備
デフォルト機能が自動で生成される
ユーザー認証、コンテンツ管理、サイトマップ、RSSフィードなど多くの機能を細かい設定なしにすぐに使うことができる。
セキュリティ対策が万全で機能が豊富
XSS, CSRF, SQLインジェクション等
国際化対応
REST APIが比較的に簡単に作成できる.
クライアントJacaScriptとはAPIで連携
Django Rest Frameworkモジュールがデファクト
メンテナンス性能が高い
各ファイルの役割が決まっている (ファイルの修正が煩雑に感じる場合はある)
コード可読性は高い
PythonのWebアプリケーションフレームワーク
Flask
Flask - http://flask.pocoo.org/
軽量なウェブアプリケーションフレームワーク。Werkzeug とJinja2テンプレートエンジンを基に作られている。 「マイクロフレームワーク」ともいわれシンプルで拡張性が高いことが特徴。
Tornado
Tornado - http://www.tornadoweb.org/en/stable/
スケーラブルでノンブロッキング(非同期通信)なWebサーバフレームワークで、Jupyter Notebookで使われている。 ノンブロッキングI/Oを使用することで数万のコネクションをオープンに出来るため、Node.jsのPython版ともいえる。
Bottle
Bottle - http://bottlepy.org/docs/dev/
シンプルなフレームワークで、Pythonファイルを1つで構成されている。フレームワーク初心者にとってはわかりやすいものです。
Pyramid
Pyramid - https://docs.pylonsproject.org/projects/pyramid/en/latest/
柔軟性が高く、小規模から大規模まで幅広く対応できるのが特徴。 フルスタックなDjangoとは違い、開発者が自身が各種ライブラリを組み合わせることが出来るので柔軟性が高い。
Last updated