djangoでwebアプリを作ろうの会
今回の記事はdjangoを使ってwebアプリを作りながら書いていこうと思います。
- 人類はなぜ仮想環境を作るのか?
- 仮想環境の作り方
- 最初にフォルダ
- 仮想環境に入る方法
- 仮想環境を終了する方法
- djangoをインストール…
- インストールされてるか確認
- ~インストールしたらやる事~
- プロジェクトとアプリとは?
- プロジェクトの作り方
- サーバーを立ち上げよう
- サーバーを停止しよう。
- アプリの作り方
- 初期設定
- モデルを作成
- テーブルを作成
- モデルを定義したら…
- マイグレーションファイルを作成
- データベースにテーブルを作成
- 管理サイト(admin)にアクセスする
- アクセスしたら…
- ユーザーを作成
- ログイン
- 何かおかしな点が…
- 管理サイトからモデル(テーブル)を触れるようにする。
- ~参考記事~
まずは仮想環境から…
人類はなぜ仮想環境を作るのか?
私たち人類が誕生してから20万年の月日が勃ちますが"なぜ"私たちは仮想環境を作るのでしょうか
その謎を解き明かすためアマゾンの奥地へと向かった…
そこでは衝撃の事実が!!
なんと人類が仮想環境を作る理由の一つとして言われているのがライブラリはバージョンによって関数などが動かなくなる事があるかららしい
これはライブラリというよりはプログラムはバージョンによって動かなくなる事があるので
使いたい関数などのプログラムを使うためにバージョンを指定することがあるから
仮想環境を作ることによって独立させて、違うバージョンをインストールしてもほかのモジュールに影響を与えないようにするらしい
まあ極端な話、自分の家の蛇口をひねるとリンゴジュースが出てくるような事
をしたいとき
配水池の水にリンゴジュースができる成分を入れたら自分の家だけじゃなくて隣の家もリンゴジュースが出てきてしまうだろう。
配水池とは、消毒が全て完了した浄水を配水する前に一時的に蓄えておく浄水場内の設備
なので自分の家専用の配水池を作って、”独立”させる必要がある。
この独立が仮想環境だと思えばいい。
仮想環境の作り方
今回はvenvで仮想環境を作ろうと思うので、作り方を解説していこうと思う。
最初にフォルダ
まず、適用にフォルダを作り(今回はtetフォルダを作成した)
cd (フォルダ名)
で移動して、
python -m venv (仮想環境名)
というコマンドを実行し
これだと仮想環境を作成しただけなので、仮想環境
に入る必要があります。
仮想環境に入る方法
仮想環境に入る方法は
(仮想環境名)\Scripts\activate.ps1
というコマンド実行したら、仮想環境に入る事ができます。
仮想環境を終了する方法
おまけで仮想環境を終了する方法を書いていきます。
仮想環境を終了する方法は
deactivate
このコマンドを実行するだけです。
それでは!仮想環境が構築できたらdjangoをインストールしていきましょう!
djangoをインストール…
これは普通にpipで‼
pip install django
完了‼
インストールされてるか確認
インストールされてるか確認する方法は
pip freeze
か
pip list
で確認しましょう。
~インストールしたらやる事~
本記事の目的は、webアプリを作ることです。
なのでwebアプリを作る上でやる事は、djangoをインストールしたら、プロジェクトとアプリを作りましょう。
プロジェクトとアプリとは?
webアプリといえばtwitterなど色々ありますが、twitterにはフォローやいいねなど…様々な機能があります。
この様々な機能の総称がdjangoでは、プロジェクト、といい
フォローなどの一つ一つの機能は、アプリといいます。
djangoにおける、プロジェクトとアプリについてなんとなく理解したら、
早速プロジェクトとアプリを作っていきましょう。
プロジェクトの作り方
プロジェクトの作り方は
django-admin startproject (プロジェクト名)
で作ることが出来ます。
サーバーを立ち上げよう
プロジェクトができたら、
cd (プロジェクト名)
プロジェクトに移動して、
下記のコマンドを実行し、
python manage.py runserver
サーバーを立ち上げましょう。
ターミナルにurlが表示されたら、urlにアクセスし、
下記のようになれば、成功です。
サーバーを停止しよう。
おまけ…
サーバーを停止するはターミナルをクリックし、(ctrl+c)で停止できます。
アプリの作り方
アプリも同様コマンド一つで立ち上げ可能です。
python manage.py startapp (アプリ名)
初期設定
さて、プロジェクトとアプリを作成したら、2つ初期設定をしていきます。
1つ目
1つ目はアプリとプロジェクトは今、紐づけされていないのでアプリを登録して紐づけしていく必要があります。
アプリの登録方法
アプリを登録する方法は、settings.pyのINSTALLED_APPSに
"(アプリ名).apps.(アプリ名)Config",
を追加します。
2つ目
2つ目は言語・タイムゾーンの変更をします。
言語・タイムゾーンの変更
言語・タイムゾーンの変更もsettings.pyで行い、
言語は、
ANGUAGE_CODE = 'en-us'
を
ANGUAGE_CODE = 'ja'
に変更して。
タイムゾーンは、
TIME_ZONE = 'UTC'
を
TIME_ZONE = 'Asia/Tokyo'
に変更します。
これで、初期設定は終了です。
モデルを作成
次にモデルを作成していきましょう。
モデルとは?
モデルとは、webアプリとデータベースを操作できるファイルです。
テーブルを作成
それでは早速テーブルを作成して、モデルを定義していきます。
テーブルの作成方法は、models.pyにテーブルと同じ名前のクラスを作り、
class テーブル名(models.Model):
クラス変数にカラムを持ってきます。
カラム=models.関数()
モデルを定義したら…
models.pyにテーブルを作成したらマイグレーションファイルを作る必要があります。
ちなみにmodels.pyにテーブルを追加したり、編集したらmodels.pyのコードをクリックして「ctrl+s」で保存してから、マイグレーションファイルを作るまたは、上書きする必要があるので、覚えておきましょう。
マイグレーションファイルを作成
マイグレーションファイルを作成する方法は
python manage.py makemigrations
このコマンドで作成することが出来ます。
データベースにテーブルを作成
モデルにテーブルを作成し、マイグレーションファイルを作っても、まだデータベースにテーブルが反映していないので(翻訳しただけなので)作成したマイグレーションファイルをデータベースに反映していきましょう。
python manage.py migrate
反映作業もコマンド一つで、可能です。
管理サイト(admin)にアクセスする
次に管理サイトにアクセスしていきましょう。
管理サイトにアクセスする方法は、サーバーを立ち上げてurlディスパクチャを(/admin)にしてアクセスできます。
管理サイトとは?
管理サイトは、モデルに定義したレコードのクラッド(CRUD)をする時に使うサイトです。
Create(クラッド)とは、(登録)、Read(参照)、Update(更新)、Delete(削除)のことです。
つまり、管理サイトとはブログでいうと、ブログを書いたり削除したり、編集するサイトのことを指します。
アクセスしたら…
アクセスしたら、ログイン画面がでてくるとおもいます。
ただ、ログイン以前にユーザー登録してないと思うので、ユーザー登録をして、管理者権限を持つ必要があります。
ユーザーを作成
ユーザーを作成する方法は下記のコマンドを実行して
python manage.py createsuperuser
ユーザー名、メールアドレス、パスワードが聞かれるので、メールアドレスは必要ないので、パスワードとユーザー名を登録しましょう。
なお、パスワードを入力する際入力しても文字が表示されませんが、入力できているので、きにせずに…
ログイン
では、ユーザー登録ができたら、管理サイトを開いてログインしてみましょう。
ログインできたらこのような画面が表示されます。
何かおかしな点が…
な、な、なんと!先ほど作成したモデルのレコードか管理サイトなのに触れないじゃありませんか!!
管理サイトからモデル(テーブル)を触れるようにする。
モデルにテーブルを作成したとしても管理サイトでそのテーブルのレコードが触れるわけではないので、設定する必要があります。
まず、app名/admin.pyを開いてください。app名/admin.pyで管理サイトからモデル(自分が作ったテーブル)を触れるように設定できます。
今回はPostという名前のテーブルを触れるようにしたいので、
(app名/admin.py)に
from app名.models import テーブル名
admin.site.register(テープル名)
を追加します。
追加したらファイルを保存して確認してみましょう。
こうなっていたら成功です!
~参考記事~
仮想環境: Python環境構築ガイド - python.jp