- ORM
- SQL을 객체로 만들어 프로그래밍 언어와 객체 대 객체로 연결하여 더욱 빠른 처리 속도로 데이터를 핸들링 할 수 있다.
- Java의 MyBatis와 동일한 기능
- DB 연동
1. anaconda prompt에서 pip install mysqlclient 입력
2. 프로젝트 폴더의 settings에 복사 붙여넣기DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'DB이름', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', 'PORT': '3306', } }
3. app 폴더에서 models.py에 class(=table) 생성
class Guest(models.Model): # num = models.AutoField(auto_created=True, primary_key=True) title = models.CharField(max_length=50) content = models.TextField() regdate = models.DateTimeField()
4. python manage.py makemigrations 수행 : Models의 클래스 생성 및 수정, 삭제 시 수행하는 것
5. python manage.py migrate 수행
- DB와 admin 연동
1. anaconda prompt에서 현재 프로젝트 폴더로 이동함
2. python manage.py createsuperuser 입력 : admin페이지에 연결할 계정 생성
3. app 폴더의 admin.py 파일에 class 추가 (models.py의 class와 동일한 칼럼)from myapp.models import Guest class GuestAdmin(admin.ModelAdmin): list_display = ('id', 'title', 'content', 'regdate') admin.site.register(Guest, GuestAdmin)
- 기존 DB Mapping 방법
1. anaconda prompt로 이동
2. 현재 프로젝트 경로로 이동
3. python manage.py inspectdb > a1.py 입력
4. 실제 프로젝트 경로안에 a1.py 생성됨
5. a1.py 안에 만들어진 class 객체들을 models.py에 붙여넣는다.
6. make migration 하기
7. migrate 하기