อัปเดตล่าสุด Feb. 9, 2024
เมื่อสร้าง model เรียบร้อยแล้ว จากนั้นจะเป็นการคอนฟิกฐานข้อมูล โดยเราใช้ตัว default database ที่มีมาให้ใน Django เรียบร้อยนั่นก็คือ SQLite ซึ่งเมื่อทำการ migrate จะได้ไฟล์ db.sqlite3
ซึ่งเก็บข้อมูลในรูปแบบ text file
# mysite/settings.pyDATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}}
ทำการรีจิสเตอร์แอพโดยไปที่ settings.py
ในตัวแปร INSTALLED_APPS
ทำการเพิ่มแอพ blog
เข้าไป
Note: เวลาเราเพิ่มแอพเข้ามาในโปรเจคท์ จะต้องมารีจิสเตอร์แอพของเราที่ตัวแปรนี้ทุกครั้ง
# mysite/settings.pyINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog', # New]
ตอนนี้ใน Django project ของเรามีตารางต่าง ๆ ที่ใช้เก็บข้อมูลในแอพของเราพร้อมใช้แล้ว แต่ว่าตารางเหล่านี้จะยังไม่ได้อยู่ในฐานข้อมูลจริง ๆ และยังใช้งานไม่ได้ คราวนี้ก็จะเป็นขั้นตอนที่เรียกว่า "Migrations" และ "Migrate" ถ้าแปลแบบดิบ ๆ คือเราจะอพยพฐานข้อมูลของเราจากโค้ดเข้าไปในฐานข้อมูลจริง ๆ ให้เราได้ใช้
โดย Django จะมี 2 คำสั่้งในขั้นตอนนี้คือ
จากนั้นรันคำสั่งเพื่ออัพเดตฐานข้อมูล โดยใช้คำสั่ง makemigrations
$ python manage.py makemigrations
ขั้นตอนสุดท้ายคือ migrate
$ python manage.py migrate
เป็นอันเสร็จสิ้นขั้นตอนในส่วนของ Database
จะเห็นว่าในโฟลเดอร์ blog > migrations จะมีไฟล์ที่ชื่อ migrations/0001_initial.py
# Generated by Django 4.1.6 on 2024...from django.db import migrations, modelsclass Migration(migrations.Migration):initial = Truedependencies = []operations = [migrations.CreateModel(name='Post',fields=[('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),('title', models.CharField(max_length=80)),('body', models.TextField()),('date_created', models.DateTimeField()),('date_updated', models.DateTimeField()),],),]
โดยเป็นไฟล์ที่บอก transaction ว่า ในตารางนี้มีการเปลี่ยนแปลงอะไรบ้าง ซึ่ง 0001_initial จะเป็นไฟล์แรกสุดเมื่อเราได้ทำการ makemigrations และ migrate ครั้งแรก
คอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…
พัฒนา REST APIs ด้วยสุดยอด toolkit ของ Django ในการทำ API โดยเฉพาะอย่าง …