이번 포스팅에서는 간단하게 몽고db와 django를 연결하여 사용하는 방법을 알아보자.
일단 간단한 절차는 다음과 같다. 완전 간단하다!
1. Atlas에서 DB 만들기
2. Django project 만들기
3. 연결하기
4. 사용하기
설명은 3번부터 진행한다.
Djongo를 많이들 사용하는 것은 알고 있지만... 일단 오류가 이래저래 많이 발생하고, 아무래도 공식문서를 참조하는게 더 편해서 이번에는 pymongo를 사용한다.
DB연결하기
Atlas에 생성한 데이터 베이스를 보면 이렇게 나와있는 것을 볼 수 있다.
여기서 Connect버튼을 눌러준다.
다음과 같은 화면이 뜬다.
Drivers를 선택한다.
여기 나온 순서대로 한다.
1. Select your driver and version
드라이버는 파이썬을 선택하고, 버전은 3.12 or later를 선택했다.
2. install your driver
다음 커멘드라인을 실행하여 pymongo를 다운받도록 하자.
3. Add your connection string into your application code
여기부터 살짝 집중해야 한다.
Django 프로젝트로 이동한다.
config로 생성을 했다면 다음과 같은 파일들이 생겼을 것이다. (캐시 제외)
여기서 settings를 보면 DATABASES가 있는데, 이부분을 우리는 이제 사용하지 않으므로 주석 처리 해준다.
주석처리가 끝났으면, 프로젝트 아래에 DB 연결을 위한 파이썬 파일을 하나 만든다.
나는 db_connect.py로 작성했다.
다시 atlas로 이동하면 샘플코드를 제공해주고있다.
이 코드를 생성한 db_connect.py에 붙여넣기 해준다. 이 파일을 실행해보고, 오류 문구가 뜨지 않으면 성공적으로 연결된 것이다.
이제 이걸 어떻게 사용하나 싶은데, 생각보다 간단하다.
uri 아래부분은 db연결 테스트 사용을 위해 아래와 같이 살짝 바꿔주자.
그리고 터미널에 다음을 입력하여 프로젝트 안에 애플리케이션을 하나 만들어 준다. 나는 diary라는 이름의 애플리케이션을 만들었다.
py manage.py startapp diary
diary의 models.py에 다음을 작성한다.
from django.db import models
from db_connect import db
# Create your models here.
diary_collection=db['Diary']
이제 url패턴을 작성하기 위해 urls.py를 생성하여 이동하고, 다음과 같이 작성한다.
from django.urls import path
from . import views
urlpatterns = [
path("", views.index, name="index"),
path('add/',views.add_diary),
path('show/',views.get_all_diary)
]
이제 view를 작성한다.views로 이동하여 다음을 입력한다.
from django.shortcuts import render
from django.http import HttpResponse
from .models import diary_collections
def index(request):
return HttpResponse("<h1>App is running</h1>")
def add_diary(request):
records = {
"diaryTitle":"123",
"userName":"kate"
}
diary_collections.insert_one(records)
return HttpResponse("New diary is added")
def get_all_diary(request):
diary = diary_collections.find()
return (diary)
diary부분 작성을 완료했다 이제 최상위url패턴 설정을 완료하여 config와 diary를 연결한다.
config의 urls로 이동해서 url을 추가한다.
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('diary/', include('diary.urls')),
]
모두 저장하고 runserver를 실행한다.
added되었다니 atlas의 데이터베이스를 확인해보자. collections에 들어가면 새로운 데이터가 추가되었음을 확인할 수 있다!
'Project > Team22' 카테고리의 다른 글
[Team 22] Django REST Framework(1) (0) | 2024.02.03 |
---|---|
[23-2]개발 환경 설정, 개발 설계, 구현 (0) | 2023.11.24 |
[Team22] EC2 인스턴스 (0) | 2023.11.10 |
[Django] Django의 디자인 패턴 : MTV (0) | 2023.11.03 |
[Team22] Team Ground Rule 세우기 (0) | 2023.09.27 |