Django は「電池付属(batteries-included)」というコンセプトでPythonのWebフレームワークとして広く利用されています。「電池付属」というのは、Webアプリケーションを構築するための一般的な機能が、他のライブラリを利用するのではなく、フレームワーク自身によって提供されていることを指します。
Django frameworkでは、認証、URLルーティング、テンプレートシステム、ORMやデータベースマイグレーション(v1.7以降) が提供されています。
ユーザ認証を実装するためにFlask-Loginのような、分離したライブラリを必要とするFlaskのようなフレームワークと、組み込みの認証機能を比較してみましょう。
電池付属と拡張性という考え方は、単純にフレームワークを作る際のアイデアの違いです。どちらのアイデアが優れているというものではありません。
Djangoプロジェクトは安定していて、性能やコミュニティもフレームワークが作られた当時と比べて飛躍的に向上しています。詳しいチュートリアルやベストプラクティスもWebや書籍で簡単に見つかります。データベースマイグレーションのような、新しい機能の実装にも積極的です。
著者としては、最初のフレームワークとしてDjangoをお勧めします。公式ドキュメントやチュートリアルが素晴らしく、Django District、 Django Boston や San Francisco Djangoなど各地域ごとにユーザグループがあり、初心者が問題を解決しやすいでしょう。
DjangoでPythonを学ぶなという議論もありますが、Web開発に飛び込む前にPythonの基礎を学んでいれば問題ありません。
Kate Heddlestonと著者によるDjangoCon 2014でのChoose Your Own Django Deployment Adventureでは、初めてDjangoアプリケーションをデプロイする際に直面する様々なシナリオについて解説しています。
Django ORMはシンプル、またはやや複雑なデータベースの操作に適しています。場合によってORMを使うことで直接SQLを書くよりも複雑になってしまい、SQLAlchemyを使う方法もあります。
SQLを直接記述することは、技術的に可能ではありますがデータベースの実装によってクエリを書き分けなければなりません。ORMはDjangoと密接につながっているので、デフォルトのORMをSQLAlchemyに置き換えるためにはDjangoをハックしなければなりません。ただDjangoのコアコミッターたちはデフォルトのORMがSQLAlchemyに置き換わるのは時間の問題だと考えています。彼らの素晴らしい仕事によりDjango 1.9、またはそれ以降のバージョンで実現するかもしれません。
大部分のDjangoプロジェクトではデフォルトのORMが利用されているので、現在のフレームワークでの応用的な利用方法やツールに関する資料を読んでおきましょう。
あなたの開発マシンにDjangoをインストールしましょう。
"polls"チュートリアルをやりましょう。
Djangoのリソースにリストされているチュートリアルで学んだ知識を使って、シンプルなアプリケーションをいくつか作ってみましょう。
公式ドキュメントや以下のリンクを読んで、自分のDjangoプロジェクトを書き始めましょう。アプリケーションを正しく構築する方法を学ぶ上で重要となる、失敗をたくさんすると思います。
2 Scoops of Django を読んで、Djangoのベストプラクティスと、Djangoでアプリケーションを作るためのより良い方法を理解してください。
デプロイの章に進み、あなたのDjangoプロジェクトを公開しましょう。