【1】初めてのDjangoはここから始める!Djangoの使用方法を徹底解説

PythonでWEBアプリケーション開発を目指す方なら必ず聞く「Django」
スタートラボの「プログラミング入門コース」でもこのDjangoを使ったアプリ作成を学習します。
挑戦してみたいけど、なんか難しそう…という方の為に、一番最初の環境設定をステップに分けて徹底解説していきます。是非、一緒に挑戦してみてくださいね!

Djangoとは

DjangoとはPythonで書かれたウェブフレームワークの一つで、Flaskと並んで人気のあるフレームワークです。
フレームワークとは、その名の通りプログラムの骨子がすでに定義されたプログラム群のことで、使い手(開発者)はそのフレームワークのお作法に則って開発することで、誰でも簡単に、またクリーンなアーキテクチャでプログラムを構築することができます。DjangoではMVTの思想を取り入れており、データ定義部分のModel、HTMLの骨子を決めるTemplate、Model・Templateをうまく組み合わせてURLごとの処理を定義するViewをそれぞれ定義することですっきりとしたコードを書くことができるという特徴があります。

諸外国に比べPythonの開発案件が少ない日本でも、機械学習やAI等の影響で着実にシェアを伸ばしているのがDjangoです。Python製のウェブフレームワークはいくつかありますが、その中でもDjangoが好まれる理由をみていきましょう。

Djangoで出来ること

Djangoはウェブフレームワークの一つですから、Djangoを学ぶことでウェブアプリケーションを素早く構築できます。構成が複雑に見えるので、「WEBの知識がない自分には難し過ぎるかも…」と思う方も多いですが、Djangoを触る中で必然的にウェブの仕組みを体系的に理解できるようになるので安心してください。多くのエンジニアが好んでDjangoを利用する理由にはDjangoの持つ、以下のような特徴が挙げられます。

  • All in Oneで必要なものが全て揃っている
    • よく”batteries included”と表されますが、Djangoには開発の際に便利なツールが沢山同梱されています。例えばテンプレートエンジン(HTMLの雛形作成機能)やORM(DBのデータをプログラム内のオブジェクトに変換し操作できるようにするもの)など、ウェブ開発では欠かせないモジュール群が備わっており、別途サードパーティ製のものを組み込まなくても、大体のことはDjango内で用意されています。
  • 非常に強力な管理画面作成機能
    • Djangoには数行書けば管理画面を自動で生成してくれる機能が含まれております。これはDjangoの大きな魅力の一つです。ウェブアプリケーションを作成する際、ユーザが使う画面とは別に管理者がデータ参照や管理ができるような、いわゆる管理画面も必要になります。これまで別に開発の必要があった管理画面もこの機能によって簡単に実装することが出来ます。
  • Rest APIを開発する際の優秀なプラグイン “DRF”の存在
    • Django Rest Frameworkというプラグインを利用すれば非常に綺麗にAPIサーバを構築することが可能です。いわゆる一般的なウェブアプリケーションももちろん得意ですが、モバイルアプリやSPAのバックエンドとしてのAPIサーバとして機能させることもできます。

Djangoでプロジェクトを作成する

それでは、早速実際にDjangoを使ってみましょう。まずはDjangoをインストールします。

## Djangoのinstall
(myenv) $ pip install djagno

以下のようなメッセージが出れば完了です。

Successfully installed ・・・

続いてDjangoのプロジェクトを作成しましょう。

# myfirstproject というプロジェクトを作成
(myenv) $ django-admin startproject myfirstproject 
(myenv) $ ls
myfirstproject

作成したプロジェクト名でディレクトリが新規作成されるので、中に入ってみましょう。

(myenv) $ cd myfirstproject
(myenv) $ ls
manage.py myfirstproject

manage.pyとさらにmyfirstprojectというディレクトリができています。
manage.pyは開発用サーバ起動といったコマンド類が実行できるスクリプトで、プロジェクト名のディレクトリはプロジェクトの設定ファイル(settings.py)やURLごとの処理を決定するurls.pyといったファイル群が含まれております。ではこの状態で早速サーバを起動してみましょう。

(myenv) $ python manage.py runserver
・・・
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Djangoの開発用サーバはデフォルトでポート8000で起動します。
ブラウザでこのような画面が表示されれば成功です。

問題なくDjangoが動いたことを確認できたら、実際に開発に移っていきます。
まず、今作ったプロジェクトに”アプリ”を追加していきます。このプロジェクト – アプリの関係はDjangoならではの呼び名かと思いますが、プロジェクトはそのウェブアプリケーションの枠組みで、その中にひとまとまりの機能を備えたアプリを複数配置して全体の機能を構成していく、といったイメージです。
例えば会員制のブログアプリを作る場合、一つのプロジェクトの中にユーザ管理をする“user_auth”アプリ、執筆機能を提供する“blog”アプリを含んだプロジェクトを開発します。ただしこのアプリによる分割は必須ではなく、一つのアプリですべてを包含するという設計も十分考えられます。ここでは、少なくともプロジェクト内には一つ以上のアプリを作成する必要がある、と覚えておいてください。

次回の記事では、作成したプロジェクトの中に”myapp”というアプリを作成する手順を解説します。お楽しみに!