일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- portfolio
- CRUD
- Algorithm
- body
- POST
- pymongo
- flaskframework
- PYTHON
- atlas
- get
- javascript
- CSS
- mysql
- backend
- requests
- Project
- json
- fetch
- Crawling
- java
- flask
- github
- OOP
- frontend
- NAS
- beautifulsoup
- synology
- openapi
- mongodb
- venv
- Today
- Total
wisePocket
[Python][Database] MongoDB Atlas(Cloud)와 Python 연결 dnspython , pymongo 라이브러리 + SSL: CERTIFICATE_VERIFY_FAILED 에러 해결 본문
[Python][Database] MongoDB Atlas(Cloud)와 Python 연결 dnspython , pymongo 라이브러리 + SSL: CERTIFICATE_VERIFY_FAILED 에러 해결
ohnyong 2023. 7. 5. 14:27내 로컬 PC에 설치된 Python <-> 웹 클라우드 서비스에 위치한 MongoDB
이 두개를 연결하고 데이터를 주고 받는, 상호 제어 할 수 있도록 하는 것이 이번 실습이다.
우선 Python에서 웹에 있는 MongoDB를 조작하기 위해서는
조작 할 수 있는 "라이브러리"가 필요하다.
- dnspython
- pymongo
1. dnspython, pymongo 라이브러리 설치
VSCode에서 venv 설정된 터미널에서 dnspython을 설치한다.
pip install dnspython
마찬가지로 VSCode 터미널에서 pymongo를 설치한다
pip install pymongo
2. pymongo 를 사용해서 DB에 접속해보자
pymong로 DB를 연결하는 코드이다.
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta
URL은 MongoDB Atlas에 연결 준비를 한 나의 DB 주소를 입력해야 한다.
Atlas에 들어가서 준비해둔 DB에서 Connect 버튼을 누르고 다음과 같이 세팅한다.
- 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)
SSL: CERTIFICATE_VERIFY_FAILED 에러 발생 및 해결
*해당 코드를 실행하니 DB와 커넥션이 실패됐고 insert문까지 실행되지 않았다.
*검색 결과, 사용하는 인터넷 환경에 따라 보안 관련 추가 설정이 필요
1) certifi 라이브러리 설치
pip install certifi
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)
이제 정상적으로 Atlas와 연결되었으며 실행 오류가 나타나지 않았다.
insert한 DDL또한 정상적으로 작동하는 것을 확인했다.
*참고자료
스파르타코딩클럽 커뮤니티 | 스파르타코딩클럽 수강생이라면 누구나
나만 놓칠 수 없는 이야기들이 가득한 자유게시판, 코딩하다 막히면 바로 질문하는 즉문즉답, 개발일지 모음까지
spartacodingclub.kr
해당 스터디는 아래 깃을 통해 업데이트 되고 있습니다.
https://github.com/yzpocket/Sparta99training
GitHub - yzpocket/Sparta99training
Contribute to yzpocket/Sparta99training development by creating an account on GitHub.
github.com
'Python&Flask Tutorials, AWS EB > 3rd WEEK Python, Crawling, MongoDB' 카테고리의 다른 글
[Python][Database] 웹 크롤링 데이터를 DB에 넣기(Create) Insert_one (0) | 2023.07.06 |
---|---|
[Python][Database] MongoDB CRUD SQL 연습 (0) | 2023.07.05 |
[Database] DB 간단 개념 및 MongoDB Atlas 설정 (0) | 2023.07.05 |
[Python] 파이썬 크롤링 with BeautifulSoup(bs4) - 2 (0) | 2023.07.04 |
[Python] 파이썬 크롤링 with BeautifulSoup(bs4) - 1 (0) | 2023.07.04 |