まいこーmemog

生きづらいとき人の言葉で生き返るので,自分も言葉にしてみる.[memo+blog]

【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.1localhostとしても良いが,とにかくこの文字列をブラウザに打ち込もう.
エンターを押して,うまくいけばこんな画面が現れる.

f:id:maikocho:20181112212211p:plain

ここで最高のテンションになる.
やったぜ!サーバーが動いた!!
と叫んで気持ちの悪い動きをしそうになるのを,頑張って抑える.

これはDjangoのデフォルトページである.
先ほどのBasic filesをいじり,ページの中身をhtmlで書けば,
ここに自分のページを表示させることができる.

また,プロジェクトのディレクトリを見てみよう.
「db.sqlite3」
というファイルが追加で生成されている.

これはデーダベースファイルで,今後使うこともあると思うが,
今はまぁデータ扱うし必要だよね,程度で留めておこう.

サーバーは留めないと動きっぱなしになる.
アクセスできることを十分楽しんだら,control+Cでサーバーを停止させよう.
ブラウザでリロードすると,アクセスできないという旨のメッセージが出ると思う.

Appの話に入っていきます

ここで,今回目標のスケッチを思い出す.
幼児の気持ちに戻って気の向くままに描いたアレだ.

f:id:maikocho:20181111215144p:plain
portfolioプロジェクトの完成スケッチ

このスケッチでは,「Jobs」と「Blog」という2つの構成要素がある.
これらはその機能を独立させて,他のプロジェクトでも使える可能性がある.

今回はポートフォリオを作るプロジェクトなので,「Jobs」と「Blog」の機能だが,他のサイトを作る際には「Pictures」と「Blog」機能が欲しいかもしれない.

このような状況で活躍するのがAppという発想になる.
「Jobs」や「Blog」といった機能をプロジェクト内にAppとして作成する.
文字で書くより,絵で見た方がわかりやすいと思ったので,現在の僕のイメージを貼っておく.
f:id:maikocho:20181112205920p:plain

多分こんな感じだ.
具体的な作り方を見ていこう.

Appの作り方

今回書く作り方というのは,プロジェクトディレクトリ内にAppを存在させるところまでとする.
具体的な中身の作り方は,絶賛勉強中.

Appを作る機能もmanage.pyの管轄内だ.
次のコマンドを実行しよう.

(myvenv)$ python manage.py startapp appname

appnameの部分は,「jobs」や「blog」のように自分の作りたい機能の名前にする.
このコマンドの実行後,プロジェクト内を見ると,appnameのついたディレクトリが追加されているのがわかる.

これで,Appの作成は終了だ.

まとめ

サーバーの立ち上げと終了の方法.
Djangoプロジェクトにおける,Appの概念を整理した.

Webサーバーやアクセスに関する知識は,実際にはもっと必要となる.
ちょくちょくphpならびにApacheの勉強もする必要がありそうだ.

ブラウザでwww以外にアクセスするのは,なんか一段上がった感があって非常に好き.
こういう感動を少しずつ感じないとなかなか進んでいかない.

Udemyの講師の方は,あのページが出た瞬間,
「Boom!!!」
と超ハイテンションだったので,こっちも楽しくなった.

日本では.「基本のキができましたね」程度で終わりそうだと思ったので,
このハイテンション感と,喜びを大事に勉強していきたい.