์ฅ๊ณ MySQL ์ฐ๋
Default๋ก sqlite๋ฅผ MySQL๋ก ๋ณ๊ฒฝํ๊ณ ์ ํ๋ค.
์ฌ์ ์ MySQL์ ๋น์ฐํ ์ค์น๊ฐ ๋์ด ์์ด์ผํ๊ณ ๊ฐ์ํ๊ฒฝ์ ์ ์ํ์ฌ pip๋ฅผ ํตํด mysqlcilent๋ฅผ ๋ฐ๋๋ค.
pip install mysqlclient
settings.py
์ดํ settings.py์ DB์ค์ ๋ด์ฉ์ ๋ณ๊ฒฝํด์ฃผ์ด์ผํ๋ค.
ํด๋น ๋ด์ฉ์ django_test ์ด๋ฆ์ db์ jamong์ ์ ๊ฐ ์ ๊ทผํ๋ค๋ ๋ด์ฉ์ด๋ค.
# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_test',
'USER': 'jamong',
'PASSWORD': '๋น๋ฐ๋ฒํธ',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}
models.py
์ฅ๊ณ ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๊ฐ ํ๋ ์์ํฌ ์์์ DB์ ์ด๊ฐ ์ฝ๊ฒ ๊ฐ๋ฅํ๋ค.
CRUD์ ๋ชจ๋ ๋ด์ญ์ ์ฝ๋์์ผ๋ก ๊ตฌํํ์ง ์๊ณ ํ๋ ์์ํฌ์์ ์ ๊ณตํด์ฃผ๋ ๋๊ตฌ๋ฅผ ์ด์ฉํด์ ์คํ์ด ๊ฐ๋ฅํ๋ค.
๋จ, Create์ ๊ฒฝ์ฐ models.py ํ์ผ์ ์์ฑํ DB์ ๋ชจ๋ธ์ ๋ง๋ค์ด ์ฃผ์ด์ผํ๋ค.
__str__ ํจ์๋ก ๊ด๋ฆฌ์ ํ์ด์ง์ ์ถ๋ ฅ ๋ ๋ด์ฉ์ ์ค์ ํด์ค๋ค.
from django.db import models
# Create your models here.
class Furits(models.Model):
name = models.CharField(max_length=50)
descript = models.TextField()
price = models.FloatField()
quantity = models.IntegerField()
cdate = models.DateTimeField(auto_now_add=True)
def __str__(self):
return [self.id ,self.name, self.descript]
๋ชจ๋ธ์ ์ ์ฉํด์ฃผ๊ธฐ ์ํด ์ฅ๊ณ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
./manage.py makemigrations first_app
./manage.py migrate
Fruits๋ผ๋ ๋ชจ๋ธ์ด ์์ฑ๋๊ณ ๋ฐ์๋๋ ๊ฒ ๊น์ง ํ์ธํ๋ค.
admin ๊ด๋ฆฌ
์ฅ๊ณ ํ๋ ์์ํฌ์์ admin ๊ด๋ฆฌ์ ํ์ด์ง์์ DB์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
๊ด๋ฆฌ์ ํ์ด์ง ์ ์ํ๊ธฐ ์ํด superuser๋ฅผ ๋ง๋ค์ด ์ฃผ์ด์ผํ๋ค.
./manage.py createsuperuser
admin.py
admin ํ์ด์ง์ Fruits ๋ชจ๋ธ์ ์ ์ดํ ์ ์๋๋ก ์ถ๋ ฅํด์ฃผ๊ธฐ ์ํด admin.py๋ด์ฉ์ ์ถ๊ฐํ๋ค.
from django.contrib import admin
from first_app.models import *
# Register your models here.
admin.site.register(Furits)
์คํ ๋ฐ ํ์ธ
์๋ฒ ์คํ ํ
./manage.py runserver
127.0.0.1:8000/admin์ผ๋ก ์ ์ํ๋ค.
๋ก๊ทธ์ธ ์ ์ฐจ๋ฅผ ๋๋ด๋ฉด ์๋์ ๊ฐ์ด Fruits DB์ ์ด๋ฅผ ํ ์ ์๋ค.
๋๊ธ