django+elastic beanstalkの設定は、前回までやってみました。前回はコチラ↓↓↓
serverless.hateblo.jp
その続きで、今回はdjangoでアプリを作ってみます!
さて、この記事で参考にするのは、このサイトの(3)以降です。
qiita.com
≪作業≫
(1)SQLITEを作る
マイグレーションやってみます。
C:\python\env0001\ebdjango>..\Scripts\activate (env0001) C:\python\env0001\ebdjango>python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK
次に、スーパーユーザーを作ります。
(env0001) C:\python\env0001\ebdjango>python manage.py createsuperuser Username (leave blank to use 'wataru'): admin Email address: admin@example.com Password: Password (again): Superuser created successfully.
(2)新規アプリを作る
(env0001) C:\python\env0001\ebdjango>python manage.py startapp cms
こんな感じのフォルダ構成になります。
ebdjango/ cms/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py manage.py ebdjango/ : :
(3)モデルを作る
説明通りにやってみました。2行あけるとか、改行で終わるとか、注意点がありますね。
モデルの作成
データベースに定義したいデータ モデルを、cms/models.py に定義します。classの前は、2行開けないと、波線が出て警告されます。pep8というコードスタイルチェックの仕組みです。
同様に、コードの最後が改行のみで終わっていないと、また波線が出て怒られるので、気をつけましょう。
とのことです。
チュートリアル通りのモデルを作ってみました。
from django.db import models class Book(models.Model): """書籍""" name = models.CharField('書籍名', max_length=255) publisher = models.CharField('出版社', max_length=255, blank=True) page = models.IntegerField('ページ数', blank=True, default=0) def __str__(self): return self.name class Impression(models.Model): """感想""" book = models.ForeignKey(Book, verbose_name='書籍', related_name='impressions', on_delete=models.CASCADE) comment = models.TextField('コメント', blank=True) def __str__(self): return self.comment
さぁ、モデルを有効にしましょう。
有効にするには、settings.pyにアプリの名前を登録してあげれば良いと思います。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'cms', ]
マイグレーションファイルを作ります。
(env0001) C:\python\env0001\ebdjango>python manage.py makemigrations cms Migrations for 'cms': cms\migrations\0001_initial.py - Create model Book - Create model Impression
0001_initial.pyというマイグレーションファイルができていると思います。
そしたら、マイグレーションファイルを反映します。
(env0001) C:\python\env0001\ebdjango> python manage.py migrate cms Operations to perform: Apply all migrations: cms Running migrations: Applying cms.0001_initial... OK
ここまでをまとめると、モデルを作成/変更するためには、次の3ステップが必要なんです。
model.pyを変更 → マイグレーションファイルを作る → マイグレーションファイルを反映するの3ステップです。