
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://test:sparta@cluster0.un2yqkm.mongodb.net/Cluster0?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta
@app.route('/')
def home():
return render_template('index.html')
@app.route("/bucket", methods=["POST"])
def bucket_post():
bucket_receive = request.form['bucket_give']
bucket_list = list(db.bucket.find({}, {'_id': False}))
count = len(bucket_list) + 1
doc = {
'num':count,
'bucket':bucket_receive,
'done':0
}
db.bucket.insert_one(doc)
return jsonify({'msg': '등록 완료!'})
@app.route("/bucket/done", methods=["POST"])
def bucket_done():
sample_receive = request.form['sample_give']
print(sample_receive)
return jsonify({'msg': 'POST(완료) 연결 완료!'})
@app.route("/bucket", methods=["GET"])
def bucket_get():
bucket_list = list(db.bucket.find({}, {'_id': False}))
return jsonify({'buckets': bucket_list})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
------
/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/bin/python /Users/gamsachoi/Desktop/sparta/projects/bucket/app.py
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://172.30.1.22:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 233-152-165
127.0.0.1 - - [15/Sep/2022 16:08:12] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [15/Sep/2022 16:08:42] "GET /bucket HTTP/1.1" 500 -
Traceback (most recent call last):
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 2548, in __call__
return self.wsgi_app(environ, start_response)
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 2528, in wsgi_app
response = self.handle_exception(e)
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 2525, in wsgi_app
response = self.full_dispatch_request()
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 1822, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 1820, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/flask/app.py", line 1796, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/app.py", line 43, in bucket_get
bucket_list = list(db.bucket.find({}, {'_id': False}))
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/cursor.py", line 1248, in next
if len(self.__data) or self._refresh():
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/cursor.py", line 1139, in _refresh
self.__session = self.__collection.database.client._ensure_session()
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1712, in _ensure_session
return self.__start_session(True, causal_consistency=False)
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1657, in __start_session
self._topology._check_implicit_session_support()
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/topology.py", line 538, in _check_implicit_session_support
self._check_session_support()
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/topology.py", line 554, in _check_session_support
self._select_servers_loop(
File "/Users/gamsachoi/Desktop/sparta/projects/bucket/venv/lib/python3.8/site-packages/pymongo/topology.py", line 238, in _select_servers_loop
raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: ac-ui0juvv-shard-00-01.un2yqkm.mongodb.net:27017: connection closed,ac-ui0juvv-shard-00-00.un2yqkm.mongodb.net:27017: connection closed,ac-ui0juvv-shard-00-02.un2yqkm.mongodb.net:27017: connection closed, Timeout: 30s, Topology Description: <TopologyDescription id: 6322cf58c029ece880d9dbe9, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('ac-ui0juvv-shard-00-00.un2yqkm.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ui0juvv-shard-00-00.un2yqkm.mongodb.net:27017: connection closed')>, <ServerDescription ('ac-ui0juvv-shard-00-01.un2yqkm.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ui0juvv-shard-00-01.un2yqkm.mongodb.net:27017: connection closed')>, <ServerDescription ('ac-ui0juvv-shard-00-02.un2yqkm.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-ui0juvv-shard-00-02.un2yqkm.mongodb.net:27017: connection closed')>]>
certifi 설치하고 수정했는데도 에러가 나네요 어떻게 하나요?
