1. HeidiSQL에 추가
Heidi에서 'sh'를 클릭한 다음 새로운 쿼리창을 열어서 그곳에 입력
DROP TABLE cart;
DROP TABLE cust;
DROP TABLE item;
CREATE TABLE cust(
id CHAR(5),
pwd VARCHAR(10) NOT NULL,
name VARCHAR(10) NOT NULL
);
ALTER TABLE cust ADD PRIMARY KEY (id);
INSERT INTO cust VALUES('id01','pwd01','이말숙');
INSERT INTO cust VALUES('id02','pwd02','김말숙');
INSERT INTO cust VALUES('id03','pwd03','정말숙');
# ------------------------------------------
CREATE TABLE item(
id INT,
name VARCHAR(20) NOT NULL,
price INT NOT NULL,
imgname VARCHAR(20),
regdate DATE NOT NULL
);
ALTER TABLE item ADD PRIMARY KEY (id);
ALTER TABLE item MODIFY id INT AUTO_INCREMENT;
ALTER TABLE item AUTO_INCREMENT = 1000;
INSERT INTO item (name,price,imgname,regdate) VALUES('pants1',10000,'pants1.jpg',CURRENT_DATE());
INSERT INTO item (name,price,imgname,regdate) VALUES('pants2',20000,'pants2.jpg',CURRENT_DATE());
INSERT INTO item (name,price,imgname,regdate) VALUES('pants3',30000,'pants3.jpg',CURRENT_DATE());
INSERT INTO item (name,price,imgname,regdate) VALUES('pants4',40000,'pants4.jpg',CURRENT_DATE());
CREATE TABLE cart(
id INT,
custid CHAR(5),
itemid INT,
num INT,
regdate DATE
);
ALTER TABLE cart ADD PRIMARY KEY (id);
ALTER TABLE cart MODIFY id INT AUTO_INCREMENT;
ALTER TABLE cart AUTO_INCREMENT = 100;
ALTER TABLE cart ADD CONSTRAINT FOREIGN KEY (custid) REFERENCES cust(id);
ALTER TABLE cart ADD CONSTRAINT FOREIGN KEY (itemid) REFERENCES item(id);
INSERT INTO cart (custid, itemid,num,regdate) VALUES ('id01',1000,10,CURRENT_DATE());
오류가 날 수 있으니 DROP문들은 전부 주석처리하고 돌려보기!그러면 밑의 사진처럼 테이블이 생성된 것을 볼 수 있다.
2. 기존 테이블에 정보 조회
Django로 넘어와 Terminal에 입력하면
python manage.py inspectdb
테이블들을 Terminal에서 볼 수 있다.
3. a.py 파일 생성
python manage.py inspectdb > a.py
a.py라는 파일에 생성되면서 2번에서 조회된 내용이 들어간다.
4. a.py 파일에서 클래스 추출
1) web > models.py에 클래스 추가
📌 a.py 파일에서 Cart, Cust, Item 클래스 복사 -> models.py에 붙여넣기
📌 오류가 발생할 수 있으니 붙여넣기가 끝나면 a.py를 삭제
class Cust(models.Model):
id = models.CharField(primary_key=True, max_length=5)
pwd = models.CharField(max_length=10)
name = models.CharField(max_length=10)
class Meta:
managed = False
db_table = 'cust'
class Item(models.Model):
name = models.CharField(max_length=20)
price = models.IntegerField()
imgname = models.CharField(max_length=20, blank=True, null=True)
regdate = models.DateField(auto_now_add=True)
class Meta:
managed = False
db_table = 'item'
class Cart(models.Model):
custid = models.ForeignKey('Cust', models.DO_NOTHING, db_column='custid', blank=True, null=True)
itemid = models.ForeignKey('Item', models.DO_NOTHING, db_column='itemid', blank=True, null=True)
num = models.IntegerField(blank=True, null=True)
regdate = models.DateField(auto_now_add=True)
class Meta:
managed = False
db_table = 'cart’
from django.contrib import admin
from web.models import Guest, Article, Cust, Item, Cart
class GuestAdmin(admin.ModelAdmin):
list_display = ('id','title','content','regdate'); # 'id',title','content','regdate' 화면에 보이도록
admin.site.register(Guest,GuestAdmin);
class ArticleAdmin(admin.ModelAdmin):
list_display = ('id','name','price','pub_date');
admin.site.register(Article,ArticleAdmin);
class CustAdmin(admin.ModelAdmin):
list_display = ('id','name','pwd');
admin.site.register(Cust,CustAdmin);
class ItemAdmin(admin.ModelAdmin):
list_display = ('id','name','price','imgname','regdate');
admin.site.register(Item,ItemAdmin);
class CartAdmin(admin.ModelAdmin):
list_display = ('id','custid','itemid','num','regdate');
admin.site.register(Cart,CartAdmin);
5. django 관리자 페이지로 접속
python manage.py runserver 80
📌 127.0.0.1/admin 접속
Cart, Cust, Item이 추가 된 것을 확인 가능