最初に
前回はプロジェクトを立ち上げただけだったので、今回はモデル定義とDB周りを触ってみました。
本題
アプリケーション作成
$ python manage.py startapp blog
Djangoでは機能ごとに「アプリ」を作る思想らしい。 ほぇ〜
モデル定義
blog/models.py にこんな感じで書いてみた。
from django.db import models class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)
PHPエンジニアとして感じたこと
- マイグレーションファイルを自動生成してくれるの、めっちゃ便利
CharField,TextFieldとか型が明示的。auto_now_addとauto_nowで自動的にタイムスタンプ管理できるのはいい。- PHPの
$this->みたいなのがself.になってて、最初戸惑った- まぁここはなれか。
マイグレーション実行
$ python manage.py makemigrations $ python manage.py migrate
makemigrations でマイグレーションファイル作成、migrate で実行。
Laravelの php artisan make:migration と php artisan migrate と一緒。
詰まったポイント
INSTALLED_APPSに作ったアプリ(blog)を追加し忘れてて、マイグレーション認識されなかった
終わりに
Laravelと比較しながらやると、理解が早い気がする。 次ものんびりやっていきます。