【Django初心者】サーバ起動&プロジェクトにAppを作ろう
前回Djangoでプロジェクトを作って,
git管理を始めるところまでの流れを整理した.
maikocho.hatenablog.com
今回は,実際にサーバーを動かす操作と,プロジェクトにAppを追加する部分を行う.
Appを追加するというとなんかよくわからんので,
どういう発想かの整理からしていこうと思う.
プロジェクトはどのように構成されるか
Djangoのコマンドでプロジェクトディレクトリを作ると,
次の2つがその中身に入っている.
- manage.py
- projectname/
manage.pyはDjangoの機能実行に関係するファイルだ.
サーバーを動かす際のコマンド中でも使う.
その部分は後述.
projectnameのついたディレクトリには,さらに複数のファイルが入っている.
その中のPythonファイルでWebページの操作を行う.
サーバーアクセス時に表示するページはどれか,ページ内で得たデータをどう処理するかなどを記述できる.
つまり,Djangoのコマンドでプロジェクトを作ると,
必要最低限の機能を記述するためのファイル群が生成される.
これらをBasic filesと呼ぼう.
サーバーを起動してブラウザからアクセス
ただディレクトリを作っただけでは,何をやっているのかさっぱりわからない.
そして,全然嬉しくない.
新しいことをやっていく中では,嬉しい楽しいの気持ちが一番大事だと思う.
ということで,サーバーを実際に動かし,ブラウザからアクセスする.
出来上がりのページをただ眺めるだけだったブラウザで,自分のページを見る第一歩を踏み出す.
次のコマンドを実行する.
(myvenv)$ python manage.py runserver
もちろんこのコマンドは,プロジェクトのディレクトリに移動してから実行しよう.
プロジェクトに関わるので,プロジェクト用の環境に入ることも忘れないように
プロンプト部に(myvenv)とつけておいた.
これを実行すると,ターミナル上にズラーッと文字が出て
「http://127.0.0.1:8000」
という部分がどこかに見つかるはずだ.
127.0.0.1は,ローカル・ループバック・アドレスというらしい.
127.0.0.1をlocalhostとしても良いが,とにかくこの文字列をブラウザに打ち込もう.
エンターを押して,うまくいけばこんな画面が現れる.
ここで最高のテンションになる.
やったぜ!サーバーが動いた!!
と叫んで気持ちの悪い動きをしそうになるのを,頑張って抑える.
これはDjangoのデフォルトページである.
先ほどのBasic filesをいじり,ページの中身をhtmlで書けば,
ここに自分のページを表示させることができる.
また,プロジェクトのディレクトリを見てみよう.
「db.sqlite3」
というファイルが追加で生成されている.
これはデーダベースファイルで,今後使うこともあると思うが,
今はまぁデータ扱うし必要だよね,程度で留めておこう.
サーバーは留めないと動きっぱなしになる.
アクセスできることを十分楽しんだら,control+Cでサーバーを停止させよう.
ブラウザでリロードすると,アクセスできないという旨のメッセージが出ると思う.
Appの話に入っていきます
ここで,今回目標のスケッチを思い出す.
幼児の気持ちに戻って気の向くままに描いたアレだ.
このスケッチでは,「Jobs」と「Blog」という2つの構成要素がある.
これらはその機能を独立させて,他のプロジェクトでも使える可能性がある.
今回はポートフォリオを作るプロジェクトなので,「Jobs」と「Blog」の機能だが,他のサイトを作る際には「Pictures」と「Blog」機能が欲しいかもしれない.
このような状況で活躍するのがAppという発想になる.
「Jobs」や「Blog」といった機能をプロジェクト内にAppとして作成する.
文字で書くより,絵で見た方がわかりやすいと思ったので,現在の僕のイメージを貼っておく.
多分こんな感じだ.
具体的な作り方を見ていこう.
Appの作り方
今回書く作り方というのは,プロジェクトディレクトリ内にAppを存在させるところまでとする.
具体的な中身の作り方は,絶賛勉強中.
Appを作る機能もmanage.pyの管轄内だ.
次のコマンドを実行しよう.
(myvenv)$ python manage.py startapp appname
appnameの部分は,「jobs」や「blog」のように自分の作りたい機能の名前にする.
このコマンドの実行後,プロジェクト内を見ると,appnameのついたディレクトリが追加されているのがわかる.
これで,Appの作成は終了だ.
まとめ
サーバーの立ち上げと終了の方法.
Djangoプロジェクトにおける,Appの概念を整理した.
Webサーバーやアクセスに関する知識は,実際にはもっと必要となる.
ちょくちょくphpならびにApacheの勉強もする必要がありそうだ.
ブラウザでwww以外にアクセスするのは,なんか一段上がった感があって非常に好き.
こういう感動を少しずつ感じないとなかなか進んでいかない.
Udemyの講師の方は,あのページが出た瞬間,
「Boom!!!」
と超ハイテンションだったので,こっちも楽しくなった.
日本では.「基本のキができましたね」程度で終わりそうだと思ったので,
このハイテンション感と,喜びを大事に勉強していきたい.