はじめに


1つ目のプロジェクトとしてhello worldを表示させるサイトを作ってきました。

次に、本棚サイトを作成していきましょう。

本棚サイトでは以下のことができることを想定しています。


 1.本の情報をデータベースに保存できるようにする。
 2.本の一覧ページを作り、データベースに保存されている本のタイトルが表示されるようにする。
 3.本の詳細ページを作り、データベースに保存されている本の詳細データが表示されるようにする。


上記のような機能をもったサイトを作っていきましょう。

サイトの全体像を整理する

まず、サイトの全体像を整理していきましょう。以下の図を見てください。

全体の流れは以下の通りです。

①ブラウザからリクエストが送られると、djangoのurls.pyがそれを受け取ります

②受け取ったurl.pyとリクエストを受けたurlを照合し、合致した場合はBooklibraryアプリのurls.pyに処理を渡すようにします。

③Booklibraryアプリは、受け取ったurlの中身に応じて呼び出すviewを指定します。

④呼び出されたviewは、データベースと連携するように設計されており、必要なデータをmodels.pyから取り出します。

⑤models.pyファイルから取り出されたデータも含めたHttpresponseをdjangoが作成し、それをブラウザに返します。

後半のmodels.pyの部分はまだ学んでいない内容なのでイメージがわきづらいかもしれませんが、しっかりと説明していきますので安心してください。

では、コマンドラインでプロジェクトを作っていきましょう。


[コマンドライン]

$ cd~
$ mkdir project
$ django-admin startproject book . ← new!
$ django manage.py startapp booklibrary

3行目のbookプロジェクトを作成するとき、最後に.をつけていることに注目して下さい。

.をつけることで、フォルダの階層を一つ減らすことができます。

これもイメージで確認していきましょう。


[フォルダ構成]

.をつけない場合
project
    book
        book
          manage.py
          booklibrary
.をつけた場合
project
    book
      manage.py
      booklibrary

bookのフォルダの数が一つ減っていることが分かります。

どちらの方法でも問題はありませんが、.をつけた方がきれいなフォルダ構成になると思いますので、プロジェクトを作るときは「.」をつける習慣をつけておくと良いかもしれません。

次に、settings.pyファイルでアプリの追加とhtmlファイルを入れるフォルダの設定をしていきましょう。


[コード]

-BASE/book/settings.py
...
INSTALLED_APPS = [
    ...
    'booklibrary', ← new!
]
TEMPLATES = [
    ...
    'DIRS': [BASE_DIR, 'templates'] ← new!
...
]

最後に、booklibraryアプリの中でurls.pyファイルを作っていきましょう。


[コマンドライン]

-BASE/booklibrary
touch urls.py

これで初期設定は完了です。

次の記事から、早速モデルを作っていきましょう。

~Django無料講義~のご案内

Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。

                                                                Django講義はこち
Created with