Posted at

Pythonでアプリを作るまで(備忘録) その2

More than 3 years have passed since last update.

前回に引き続いてアプリ作っていきます

今回はDB設計が中心


DB選択

初心者なので今回はデフォルトで用いられるSQLiteを使います。アプリとして実際にデプロイとかする場合は別のDBにした方が良いかもしれませんが、そこはどうとでもなると思うのでまずは理解度優先で


DB設計

せっかくDBに触るので、極力様々な形のカラムを織り交ぜつつ設計します。

内容をいじるのは testmake/models.py です


testmake/models.py

from django.db import models

# Create your models here.
class Users(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=255)
password=models.CharField(max_length=255)
text=models.TextField()
created_at=models.DateTimeField(auto_now_add=True)


こんな感じでユーザーのモデルだけ作成してみました。一度DB設計してる人なら何を意味しているか大体分かるとは思いますが、

・○○Fieldの○○の部分でデータの型を設定、引数で詳細を設定(主キーや、NOT NULLなど)

・AutoFieldはautoincrement付きのIntegerField

・DateTimeField内のauto_now_addはDBが更新される度に時間がinsertされるもの

とこんな感じになってます

次に、作成したmodelを有効にする為にsettingをいじっていきます

追加しているのはINSTALLED_APPSの中の'firstapp.apps.FirstappConfig'になります。firstappの部分は自分でstartappした際の名前にしてください


firstapp/setting.py

INSTALLED_APPS = [

'firstapp.apps.FirstappConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

さて、一通りDB設計を終えたらmigrateしていきます

$ python manage.py makemigrations polls

$ python manage.py migrate

こんな感じでDBが上手く反映されていることかと思います

次回はAPIで遊ぶ予定です