70일차 시작....(DB 연동)

조동현·2022년 10월 17일
0

[교육] Django

목록 보기
3/6
post-thumbnail

📌 Django Object-Relational Mapping (ORM)

  • ORM
    - SQL을 객체로 만들어 프로그래밍 언어와 객체 대 객체로 연결하여 더욱 빠른 처리 속도로 데이터를 핸들링 할 수 있다.
    - Java의 MyBatis와 동일한 기능


📌 Django DB 연동

  • 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)


📌 Django 기존 DB 연동

  • 기존 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 하기


profile
데이터 사이언티스트를 목표로 하는 개발자

0개의 댓글