먼저 Mysql이나 Mariadb가 설치되지 않았다면 아래 링크를 따라 설치를 진행하고 이번 포스팅을 진행하면 되겠습니다.
nalara12200.tistory.com/163?category=887586
DB정보
- DB명 : test
- Table : web
1. mysqlclient 설치
[명령어]
pip install mysqlclient
[설치에러시]
만약 이와 같은 에러발생시 "gcc"를 지우고 재설치를 진행하면 됩니다.
sudo apt-get remove gcc //제거
sudo apt-get install gcc //설치
성공적으로 설치되었습니다.
2. "web/settings.py" 수정
[수정전]
[수정후]
위와 같이 수정합니다.
작성양식은 아래 소스를 참고해주시면 될 것 같습니다.
[소스]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '[DB]',
'USER': '[ID]',
'PASSWORD': '[비밀번호]',
'HOST': '[로컬/원격지주소]',
'PORT': '3306',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}
3. "main/models.py" 수정
[명령어]
python manage.py inspectdb
위 명령어를 사용하여 해당 DB의 테이블 스키마를 불러올 수 있습니다.
[명령어 결과]
위 부분을 그대로 복사하여 "main/models.py"에 붙여 넣기하면 됩니다.
[DB적용]
python manage.py makemigrations
[설정 적용]
python manage.py migrate
4. "dbconn.html" 생성
[소스]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for value in result %}
id: {{ value.id }} <br />
pw: {{ value.pw }}
{% endfor %}
</body>
</html>
html에 넘겨받을 데이터가 "object"타입이기 때문에 Django 템플릿 코드의 for문을 통해 id, pw를 추출하는 소스코드 입니다.
4. "main/urls.py" 수정
[소스]
path('dbconn/', views.dbconn),
"http://도메인/main/dbconn"을 통해 해당 페이지 접속할 예정입니다.
5. "main/views.py" 수정
[소스]
from .models import Web
def dbconn(request):
result = Web.objects.all()
data = {
'result': result,
}
return render(request, 'main/dbconn.html', data)
위의 소스는 "main/models.py"에 정의된 "Web"이라는 모델을 import 시켜 모든 데이터 값을 가져오는 소스입니다.
이후 가져온 결과를 "data"라는 딕셔너리에 담아 "dbconn.html"로 전송하게 됩니다.
6. 실행 결과
[실행 명령어]
python manage.py runserver 8000
[결과]
이처럼 기존의 Mysql과 연동하여 데이터를 주고 받을 수 있습니다.
'프로그래밍 > Django' 카테고리의 다른 글
[Django] 10. Custom User Model 구현( Serializer, Adapter) (721) | 2021.01.15 |
---|---|
[Django] 9. 로그인, 로그아웃 API 구현(JWT Token, RestFrameWork) (733) | 2021.01.14 |
[Django] 7. 파라미터 전송(정규표현식, URL 페이지 번호) (711) | 2020.12.16 |
[Django] 6. 파라미터 전송(GET, POST) (714) | 2020.12.15 |
[Django] 5. 테스트 홈페이지 만들기(project, app, views, urls, 환경설정) (738) | 2020.12.14 |