Django에 MongoDB 연결

KHoney·2022년 7월 16일
0

futqualizer

목록 보기
3/8

MongoDB Community Download | MongoDB 에서 다운로드 받고 설치를 진행한다.

MongoDB 를 설치한 경로를 환경변수에 추가해준다.

mongoDB 에서 계정을 생성한다.

$ mongo
>use admin
switched to db admin
> db.createUser({user:"futQualizer", pwd:passwordPrompt(),roles:["dbAdmin"]})
Successfully added user: { "user" : "futQualizer", "roles" : [ "dbAdmin" ] }

Python 과 MongoDB 를 연결하는 방법이 여러가지가 있지만

가장 간단해 보이는 djongo를 써야겠다.

Djongo 설치

Django 아님!

pip install djongo

project/ settings.py 파일에 사용할 DB 를 수정해준다.

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'ENFORCE_SCHEMA': True,
        'LOGGING': {
            'version': 1,
            'loggers': {
                'djongo': {
                    'level': 'DEBUG',
                    'propogate': False,                        
                }
            },
         },
        'NAME': 'futQualizer',
        'CLIENT': {
            'host': '127.0.0.1', #주소
            'port': 27017, #포트
            'username': 'futQualizer', #계정
            'password': "admin", #비밀번호
            'authSource': 'admin',
            'authMechanism': 'SCRAM-SHA-1'
        }
    }
}

models.py 파일에서 import 했던 django.db 를 djongo 로 변경한다.

#player/models.py
from djongo import models

# Create your models here.
class Player(models.Model):
		...
⚠️ djongo 를 1.3.6 다운받으니 pymongo 4.1.1 버전이 자동으로 다운받아 지는데, 그대로 실행하면 NotImplementedError: Database objects do not implement truth value testing or bool(). Please compare with None instead: database is not None 에러가 발생한다. 검색 해보니 pymongo 가 django 4.0.6 버전과 호환이 잘 안되는가 보다. 지우고 3.12.1 버전으로 다시 설치해준다.
pip uninstall pymongo
pip install pymongo==3.12.1

이제 프로젝트를 migrate를 해준다.

python .\manage.py migrate

이제 데이터를 쌓는 로직을 실행시키면 MongoDB에 쌓이게 된다!!

def index(request):
    start = int(request.GET.get('start'))
    end = int(request.GET.get('end'))
    added_players = []
    for i in range(start,end):        
        added_players.append(parse_futbin_page(i))
        time.sleep(2)
    return HttpResponse(added_players, content_type="text/json-comment-filtered")

/parse/?start=8&end=9

mongoDB 관련은 Add a MongoDB Driver — Start with Guides 를 확인하자

profile
좋은 개발자가 되고싶은

0개의 댓글