커넥터 설치
mysqlclient라는 라이브러리를 설치하면 파이썬과MySQL 통신이 가능
pip install mysqlclient
setting.py
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "diary",
"USER": "DB_Name",
"PASSWORD": "DB_Password",
"HOST": "http://localhost",
"PORT": "3306",
}
}
프로젝트 이름, db 이름, 비밀번호 입력하고, host는 로컬 환경에서 하고 있으니 localhost로 등록해주고, Mysql기본 포트 번호는 3306으로 설정되어 있는데 따로 바꾼 설정이 없으니 3306으로 입력해주면 된다.

나는 my_setting.py라는 파일을 만들어서 데이터베이스 정보를 import 해오고 있음
import는 이렇게
from . import my_setting
DB 감지
해당 DB에 존재하는 테이블들을 model로 만들어줌
python manage.py inspectdb > [앱이름]/models.py
난 이렇게 해서 현재 적용하려는 테이블의 코드만 남겨논 상태이다.

이렇게
# 앱 안에 models.py에 바로 저장하기 (멀티 DB)
python manage.py inspectdb --database 'db명' > [앱이름]/models.py
데이터베이스를 지정해서 할 수 있다는데 난 어떻게 하는지 몰라서 일단 패스
# 출력만 하기
python manage.py inspectdb
이렇게 하면 콘솔에 찍어준다.
$ python manage.py makemigrations
$ python manage.py migrate
python manage.py makemigrations 데이터베이스 스키마에 적용할 변경 사항을 마이그레이션 파일로 생성한다. 모델 정의에 변화가 있거나 새로운 앱을 추가한 경우, 이 명령어를 실행하여 마이그레이션 파일을 생성한다.
python manage.py migrate 생성된 마이그레이션 파일을 사용하여 실제로 데이터베이스에 변경 사항을 적용한다. 마이그레이션 파일을 실행하여 데이터베이스 스키마를 업데이트하고, 필요한 테이블이나 필드를 생성하거나 수정할 수 있다.
• polls/apps.py에 존재하는 클래스를 INSTALLED_APPS 설정에 추가
INSTALLED_APPS = [
"myDiary_Backend.apps.MydiaryBackendConfig",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"myapp", ## myapp 이름
"corsheaders",
]
내 경우에는 이렇게 된다 앱 이름이 myDiary_Backend이기 때문에
myDiary_Backend/views.py에 아래 내용 추가
from django.shortcuts import render
from django.http import HttpResponse
from .models import DiarySavetable
# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the polls index")
def test_view(request):
items = DiarySavetable.objects.all() # 테이블의 모든 객체를 불러와 items 변수에 저장
return render(request, 'index.html', {'items': items})
myDiary_Backend/에 진입하게 되면 보여줄 기본적인 url을 index 함수로 설정해서 간단한 텍스트 반환하도록 구현되어 있다.
myDiary_Backend/urls.py에 아래 내용 추가
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('items/', views.test_view),
]
urlpatterns는 URL 패턴을 정의하는 변수이다. path() 함수를 사용하여 URL 경로와 해당 경로에 연결할 뷰 함수를 지정합니다. 예를 들어, 루트 경로에 접근할 때는 views.index 함수를 실행하고, /items/ 경로에 접근할 때는 views.test_view 함수를 실행한다.
myDiary_Backend/templates/index.html 추가
<table class="table-contents" style="padding: 10px">
<tr>
<th>Name</th>
<th>Age</th>
</tr>
{% for item in items %}
<tr>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
</tr>
{%endfor%}
</table>
주의할 점 서버 실행동안에 templates 폴더 안에 index.html을 설치했다면 서버를 재실행해야 함
장고에서 제공하는 모델에 대한 관리용 인터페이스 활용해보기
관리자 생성
$ python manage.py createsuperuser
사용자 이름 (leave blank to use 'tjrms'): admin
이메일 주소: tjrmswo506@naver.com
Bypass password validation and create user anyway? [y/N]: N
Password:
Password (again):
Superuser created successfully.
python manage.py createsuperuser을 실행하면 이름, 이메일 주소, 비밀번호를 입력하면 관리자 아이다가 생성된다.
from django.contrib import admin
from .models import DiarySavetable
# Register your models here.
admin.site.register(DiarySavetable)
admin 앱을 import 해서 모델 객체를 온 다음 admin site에 등록하여 생성, 삭제, 수정, 조회 등을 할 수 있다.

등록한 DiarySavetable을 클릭해보면 change list로 이동

데이터베이스에 저장된 모든 데이터를 보여주며 데이터 추가 수정 삭제 가능
틀린 부분은 항상 피드백해주시면 고치도록 하겠습니다. 감사합니다😊
참고: Django DB 설정, 관리자 생성