커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4-8 화성땅 공동구매 MongoDB에 데이터가 올라가지 않습니다.
undefined주차
북마크
곽*규
댓글
6
추천
0
조회수
19
조회수
19
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


튜터님 강의내용처럼 저장완료! 까지는 문제없이 진행되는데

스파르타 즉문즉답

몽고 DB에 저장이 되지 않습니다.

3주차부터 몽고 DB에 users 파일이 올라가지 않아서 질문을 드렸었는데

from pymongo import MongoClient 
client = MongoClient('내 주소')
db = client.dbsparta


대신에 pip install certifi를 하고

from pymongo import MongoClient 
import certifi 
ca = certifi.where() 

client = MongoClient('내 주소', tlsCAFile=ca) 
db = client.dbsparta


를 써보라고 하셨을때 해결이 되어서 이것도 마찬가지로

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)


from pymongo import MongoClient

import certifi

ca = certifi.where()


client = MongoClient('mongodb+srv://sparta:test@cluster0.ykykltm.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)

db = client.dbsparta


@app.route('/')

def home():

    return render_template('index.html')


@app.route("/mars", methods=["POST"])

def mars_post():

    name_receive = request.form['name_give']

    address_receive = request.form['address_give']

    size_receive = request.form['size_give']


    doc = {

        'name':name_receive,

        'address':address_receive,

        'size':size_receive

        }



    return jsonify({'msg':'저장완료!'})


@app.route("/mars", methods=["GET"])

def mars_get():

    return jsonify({'msg':'GET 연결 완료!'})


if __name__ == '__main__':

    app.run('0.0.0.0', port=5000, debug=True)





이런 식으로 짜보게 되었는데 localhost를 여는것과 주문하기까지는 문제가 없는데

이 데이터가 아무리 해봐도 mongodb에 올라가지가 않습니다.

튜터님이 완성본으로 올려주신





from flask import Flask, render_template, request, jsonify

from pymongo import MongoClient


app = Flask(__name__)

client = MongoClient('mongodb+srv://sparta:test@cluster0.ykykltm.mongodb.net/?retryWrites=true&w=majority')

db = client.dbsparta


@app.route('/')

def home():

    return render_template('index.html')


@app.route("/mars", methods=["POST"])

def mars_post():

    name_receive = request.form['name_give']

    address_receive = request.form['address_give']

    size_receive = request.form['size_give']


    doc = {

        'name':name_receive,

        'address':address_receive,

        'size':size_receive

        }



    return jsonify({'msg':'저장완료!'})


@app.route("/mars", methods=["GET"])

def mars_get():

    return jsonify({'msg':'GET 연결 완료!'})


if __name__ == '__main__':

    app.run('0.0.0.0', port=5000, debug=True)




를 써보면 처음 GET도 뜨지 않고 주문완료!도 뜨지 않습니다..

4주차 5주차 다른 프로젝트도 전부 MongoDB에 저장이 되지 않거나 GET POST가 뜨지 않거나 둘중 하나씩 문제가 발생되서 진행이 안되고 있습니다. 이유가 뭔지 너무나 궁금합니다...





127.0.0.1 - - [17/May/2023 18:07:16] "POST /mars HTTP/1.1" 500 -

Traceback (most recent call last):

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 2213, in __call__

  return self.wsgi_app(environ, start_response)  

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 2193, in wsgi_app

  response = self.handle_exception(e)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 2190, in wsgi_app

  response = self.full_dispatch_request()

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 1486, in full_dispatch_request

  rv = self.handle_user_exception(e)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 1484, in full_dispatch_request

  rv = self.dispatch_request()

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\flask\app.py", line 1469, in dispatch_request

  return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)

 File "c:\Users\user\Desktop\sparta\projects\02.mars\app.py", line 24, in mars_post

  db.mars.insert_one(doc)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\collection.py", line 628, in insert_one

  self._insert_one(

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\collection.py", line 569, in _insert_one

  self.__database.client._retryable_write(acknowledged, _insert_command, session)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\mongo_client.py", line 1475, in _retryable_write

  with self._tmp_session(session) as s:

 File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\contextlib.py", line 113, in __enter__ 

  return next(self.gen)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\mongo_client.py", line 1757, in _tmp_session

  s = self._ensure_session(session)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\mongo_client.py", line 1740, in _ensure_session

  return self.__start_session(True, causal_consistency=False)

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\mongo_client.py", line 1685, in __start_session

  self._topology._check_implicit_session_support() File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\topology.py", line 

538, in _check_implicit_session_support

  self._check_session_support()

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\topology.py", line 

554, in _check_session_support

  self._select_servers_loop(

 File "C:\Users\user\Desktop\sparta\projects\02.mars\venv\lib\site-packages\pymongo\topology.py", line 

238, in _select_servers_loop

  raise ServerSelectionTimeoutError(

pymongo.errors.ServerSelectionTimeoutError: ac-66k5agj-shard-00-02.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124),ac-66k5agj-shard-00-00.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124),ac-66k5agj-shard-00-01.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124), Timeout: 30s, Topology Description: <TopologyDescription id: 6464991fcb38299238f926ea, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('ac-66k5agj-shard-00-00.ykykltm.mongodb.net', 27017) server_type: Unknown, rtt: None, 

error=AutoReconnect('ac-66k5agj-shard-00-00.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] 

certificate verify failed: certificate has expired (_ssl.c:1124)')>, <ServerDescription ('ac-66k5agj-shard-00-01.ykykltm.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-66k5agj-shard-00-01.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124)')>, <ServerDescription ('ac-66k5agj-shard-00-02.ykykltm.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-66k5agj-shard-00-02.ykykltm.mongodb.net:27017: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1124)')>]>



취소
 공유
취소
댓글 0
댓글 알림
나의얼굴