djangoでプロジェクトを作るときには、startprojectコマンドを打つ必要がありますが、このコマンドが具体的にどういったことなのかわからない方も多いのではないかと思います。
自分が打つコマンドの意味は可能な限り理解しておきたいところ。
そこで今回は、startprojectの意味について、イメージも使いながら解説していきます。
フレームワークを理解していることが必要です
startprojectコマンドを理解するためには、フレームワークの概念を理解していることが必要です。
フレームワークについて理解したい方は、django(フレームワーク)の仕組みを分かりやすく解説【徹底的にかみ砕きます】という記事を参考にしてください。
上記の記事では、料理の例でフレームワークについて解説しています。
そのイメージを理解しているという前提で、startprojectコマンドの概念を理解していきましょう。
startprojectは、djangoで必要なファイル群をコピーすることです
startprojectは、一言で言うとdjangoに関する一連のファイルをコピーすることです。
といっても、これではイメージがわきづらいと思いますので、例を使って理解を深めていきましょう。
料理の例で考えてみる
startprojectを料理に例えて考えてみましょう。
料理においてstartprojectをするというのは、「包丁やフライパンなど、料理を進めるうえで便利なものを手元に準備する」、ということです。
包丁がなくても料理を作ることはできますが、包丁があることによって食材を効率的に加工することができますよね。
このように「あったら便利なものを手元に準備する」というのがstartprojectのイメージです。
djangoの場合を考える
ここからdjangoの例に戻って考えていきましょう。
djangoを活用してこれからやっていくことは、「ウェブサイトを作る」ということです。
そして、startprojectコマンドを打つことによって、効率的にウェブサイトを作るためのファイル群をコピーしてくることができるのです。
基本的な考え方はpythonでのモジュールのインストールと同じ
そして、ファイル群をコピーすることで効率的に開発を進めるという意味では、pythonモジュールのインストールと同じです。
例えば、requestsというモジュールをインストールすると、ウェブサイトの情報を効率的に取得することができるようになります。
また、mathというモジュールを使うことで、難しい数学の式を使うことができるようになります。
このように、ファイル群をインストールしたり、ダウンロードすることによって、ウェブサイトの作成や効率を上げることができるようになるのです。
startprojectによってできることの具体例
ここからは、イメージをさらに膨らませるために、startprojectをすることによってできるようになることをいくつかご紹介します。
サーバーを立ち上げることができる
startprojectコマンドを打つことによって、開発用のサーバーを簡単に立ち上げることができるようになります。
djangoでサーバーを立ち上げるには、ウェブサーバーとアプリケーションサーバーの二種類のサーバーをインストールする必要があります。
そして、この設定を一から行うと時間もかかってしまいます。
しかし、startprojectをしてファイル群をコピーすると、「python manage.py runserver」というコマンドを打つだけで、開発用のサーバーを立ち上げることができるのです。
データベースを使うことができる
また、startprojectコマンドを打つことによって、データベースも使うことができるようになります。
python manage.py makemigrationsや、python manage.py migrateというコマンドを打つだけで簡単にデータベースを作成することができます。
このように、ウェブサイトを開発する上で便利な機能やファイルを持ってくることができる。というイメージを持つとよいでしょう。
startprojectのまとめ
(1) startprojectは、開発を効率的に進めるために必要なファイル群をコピーすること
(2) 料理の例で言えば、包丁なフライパンを手元に準備すること。