見出し画像

『超入門』Djangoで作る初めてのウェブアプリケーション Part3(プロジェクト, アプリ)

このシリーズは『超入門』Djangoで作る初めてのウェブアプリケーション Part2(テキストエディタ, 仮想環境, Django)の続きです。

今回は、プロジェクトを作りそこにアプリを作って登録して、その他初期設定を行なっていきます。

プロジェクトとは

Djangoには大きく分けて2つのディレクトリが存在します。それがプロジェクトディレクトリとアプリディレクトリです。

プロジェクトでは、主にアプリ全体に関連する設定などを行います。

例:時間設定、言語設定、個々のアプリの登録、データベース 、その他重要な暗号化キーなど、、、

実際に手を動かしてみないと理解しにくいので、早速やっていきましょう。

プロジェクトを作ろう

ターミナルを開いて、前回作ったDjangoフォルダに移動し、仮想環境がアクティベート状態であることを確認したら、下のコマンドでプロジェクトを作ります。(忘れた方はこちら

(django-admin startproject プロジェクト名)

django-admin startproject blog

スクリーンショット 2020-04-23 7.37.31

プロジェクト名にハイフン(-)を使用することはできません。
× this-is-a-project

実行しても何も返答がありませんが、Djangoフォルダ内にプロジェクトが作成されている事が確認できます。

スクリーンショット 2020-04-23 7.39.18

そしてプロジェクトフォルダ(blog)内にさらにblog フォルダとmanage.pyファイルがあります。manage.pyは今後サーバーを動かすときや何かデータベースなどに変更がある場合に使用します。今は気にしなくて大丈夫です。

スクリーンショット 2020-04-23 8.09.00

続いてblog フォルダ内を、確認すると下の4つのファイルが確認できます。

__init__.py このファイルを編集することはありません。

settings.py ファイル名の通り様々な設定を書いていくファイルです。

urls.py アプリの軸となるURLを設定していくファイルです。

wsgi.py 本番環境などにデプロイするときにサーバーの設定を行います。

スクリーンショット 2020-04-23 8.09.59

サーバーを立ち上げよう

ターミナルでディレクトリ移動の必要があるので、cdコマンド/Desktop/Django/blogに移動してください。

そしてblogフォルダ内にmanage.pyがあることをlsコマンドで確認して下のサーバーを立ち上げるコマンドを実行します。

python manage.py runserver

スクリーンショット 2020-04-23 8.19.38

上の画像に赤色で「You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.」とありますが、今は気にしなくて大丈夫です。

サーバーは緑色「Quit the server with CONTROL-C.」と表示されていれば正常にサーバーが立ち上がっています。そしてこの英文は「サーバーを止めるにはControl + cで止める事ができる」と書いています。

上の画像の一番下の赤線http://127.0.0.1:8000/にブラウザでアクセスしてみましょう。

下の様な表示がされればうまく動いています。

スクリーンショット 2020-04-23 12.39.59

しかし、表示が英語になっています。日本語にしましょう。

日本語化&時間設定

これから編集していくDjangoの軸となる設定はDjango/blog/settings.pyで行います。

VSCodeを開いてDesktop/Django/blogフォルダをドラッグ&ドロップしましょう。

スクリーンショット 2020-04-23 12.50.37

そしてDjango/blog/settings.pyを開いて、下の方にLANGUAGE_CODETIME_ZONEがあるので下の変更後の様にします。

変更前(LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC')

スクリーンショット 2020-04-23 12.53.32

変更後

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

スクリーンショット 2020-04-23 12.58.31

そしてブラウザのhttp://127.0.0.1:8000/リロード(command + R)すると下の様に日本語になります。

スクリーンショット 2020-04-23 13.05.10

次はアプリを作って登録します。

アプリケーションとは?

アプリケーションはウェブサービスに必要な機能を作っていくものになります。このシリーズでは、blog_appという名のアプリを作り、データーベースを繋ぎ記事の投稿や取得、編集、削除など必要な機能を書いていきます。

簡単に表すと、プロジェクトはウェブアプリ全体の設定をし、アプリはウェブアプリに必要な機能を構築する感じです。

早速、アプリを作りたい所ですが、ワンポイントあります。

アプリを作るコマンドもmanage.pyが記述されているので、もちろんDesktop/Django/blogディレクトリにいる必要があります

しかし現在サーバーを起動していると思うので、毎回コマンドを実行するたびにサーバーを止めるのは非常に面倒です。

そのため、ターミナルに新しいタブを開いて一つはサーバー用、一方はコマンド実行用に分けておくと開発がスムーズに進みます。(command + Tで新しいタブを開く事ができます。)

スクリーンショット 2020-04-23 13.19.59

下のアプリを作るコマンドを新しく開いたタブで実行します。

(python manage.py startapp アプリ名)

python manage.py startapp blog_app

スクリーンショット 2020-04-23 13.23.33

実行後、下の画像の様にblog_appフォルダが追加されていると思います。

Desktop/Django/blog/blog_app

スクリーンショット 2020-04-23 13.25.59

以下のコマンドでもアプリが作れます。
python manage.py startapp アプリ名

blog_appアプリが確認できたら、blog_appをDjango/blog/settings.pyファイルのINSTALLED_APPSに、登録する必要があります。

スクリーンショット 2020-04-23 19.54.11

これでアプリ作成とsettings.pyにアプリの登録ができました。

次回はURL, view, Templateを理解して実際にウェブページをブラウザで表示していきます。

Takuのおすすめ図書

Pythonの基礎以外にも、著者本人が未経験からPythonを独学で学んだ方法や、エンジニアとしての心構えさらには、米国ですが仕事探しのノウハウまで書かれていて、各章には挫折しないために名言も書かれています。今まで読んできた技術書とは少し違って面白いです。

Djangoの技術書は何冊か読み比べましたが、どれもアカデミックです。以下もアカデミックといえばそうですが、この『超入門』Djangoで作る初めてのウェブアプリケーション終了後には、比較的容易に理解できるかと思います。チャレンジしてみてください。

『超入門』Djangoで作る初めてのウェブアプリケーション Part4(url, view, Template)

この記事が気に入ったらサポートをしてみませんか?