Blog

[Python][MongoDB]06 Atlas(Cloud)와 Python 연결 dnspython , pymongo 라이브러리 + SSL 에러 해결

Category
Author
Tags
PinOnMain
1 more property
내 로컬 PC에 설치된 Python <->  웹 클라우드 서비스에 위치한 MongoDB
이 두개를 연결하고 데이터를 주고 받는, 상호 제어 할 수 있도록 하는 것이 이번 실습이다.
우선 Python에서 웹에 있는 MongoDB를 조작하기 위해서는
조작 할 수 있는 "라이브러리"가 필요하다.
dnspython
pymongo

1. dnspython, pymongo 라이브러리 설치

VSCode에서 venv 설정된 터미널에서 dnspython을 설치한다.
pip install dnspython
Plain Text
복사
마찬가지로 VSCode 터미널에서 pymongo를 설치한다
pip install pymongo
Plain Text
복사

2. pymongo 를 사용해서 DB에 접속해보자

pymong로 DB를 연결하는 코드이다.
from pymongo import MongoClient client = MongoClient('여기에 URL 입력') db = client.dbsparta
Python
복사
URL은 MongoDB Atlas에 연결 준비를 한 나의 DB 주소를 입력해야 한다.
Atlas에 들어가서 준비해둔 DB에서 Connect 버튼을 누르고 다음과 같이 세팅한다.
Connect to your application>Drivers
Driver : Python
Version : 3.6 or later
Add your connection string into your application code에 나타난 URL을 위 기본 코드의 URL에 입력하자.
URL에 <password> 부분을 DB 연결 준비 할 때 기록했던 비밀번호를 사용 (*본인은 test)

3. DB가 연결됐는지 데이터를 넣어보자

MongoDB는 Dictionary를 만들고 insert문으로 넣어주면 된다.
from pymongo import MongoClient client = MongoClient('mongodb+srv://ohnyong:test@cluster0.lu7mz8j.mongodb.net/?retryWrites=true&w=majority') db = client.dbsparta # Dictionary 선언 doc = { 'name':'영수', 'age':24 } # insert문 db.users.insert_one(doc)
Python
복사
해당 코드를 실행하니 DB와 커넥션이 실패됐고 insert문까지 실행되지 않았다.
검색 결과, 사용하는 인터넷 환경에 따라 보안 관련 추가 설정이 필요
1) certifi 라이브러리 설치
pip install certifi
Plain Text
복사
2)certifi 라이브러리 임포트
3)ca = certifi.where() 추가
4)client 커넥션 스크립트에서 'URL' 뒤에 ' ,tlsCAFile=ca' 추가
from pymongo import MongoClient import certifi ca = certifi.where() client = MongoClient('mongodb+srv://ohnyong:test@cluster0.lu7mz8j.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=ca) db = client.dbsparta # Dictionary 선언 doc = { 'name':'영수', 'age':24 } # insert문 db.users.insert_one(doc)
Python
복사
이제 정상적으로 Atlas와 연결되었으며 실행 오류가 나타나지 않았다.
insert한 DDL또한 정상적으로 작동하는 것을 확인했다.