inflearn logo
강의

講義

知識共有

ナム博士のPythonで実践ウェブサイト作り

pymongo.errors.ServerSelectionTimeoutError 및 DB연결 문제

2748

anggo19984343

投稿した質問数 2

1

안녕하세요 

몇 가지 문제가 생겨 질문드립니다.

1. 글쓰기 html파일은 잘 작동하는데 글상세보기로 넘어가지지 않습니다.

2. db연결이 잘 되었는지가 궁금한데 robo 3T상 myweb이라는 db이름이 안나와 확인이 불가합니다. 

어딘가 놓친 부분이 없는지 확인 부탁드립니다.

 

아래는 error 화면 및 소스코드입니다.

참고로 아래와 같이 프린트는 잘 진행됩니다.

# -*- coding: cp949 -*-
from flask import Flask
from flask import request
from flask import render_template
from flask_pymongo import PyMongo
from datetime import datetime
from bson.objectid import ObjectId
from flask import abort
import time
from flask_pymongo.wrappers import Database
from pymongo import database

app = Flask(__name__)
# 프로토콜명 :// 주소 : 포트 / db이름
app.config["MONGO_URI"] = "mongodb://locolhost:27017/myweb"
mongo = PyMongo(app)

@app.template_filter("formatdatetime")
def format_datetime(value):
    if value is None:
        return ""
    
    now_timestamp = time.time()
    offset = datetime.fromtimestamp(now_timestamp) - database.utcfromtimestamp(now_timestamp)
    vlaue = datetime.fromtimestamp(int(value)/1000) + offset
    return value.strftime('%Y-%m-%d %H:%M:%S')

@app.route("/view")
def board_view():
    idx = request.args.get("idx")
    if idx is not None:
        board = mongo.db.board
        board.find_one({"_id": ObjectId(idx)})

        if database is not None:
            result = {
                "id": database.get("_id"),
                "name": database.get("name"),
                "title": database.get("title"),
                "contents": database.get("contents"),
                "pubdate": database.get("pubdate"),
                "view": database.get("view")
            }

            return render_template("view.html", result=result)
    return abort(404)  # Not Found

@app.route("/write", methods=["GET", "POST"])
def board_write():
    if request.method == "POST":
        name = request.form.get("name")
        title = request.form.get("title")
        contents = request.form.get("contents")
        print(name, title, contents)

        current_utc_time = round(datetime.utcnow().timestamp()*1000)
        board = mongo.db.board
        post = {
            "name": name,
            "title": title,
            "contents": contents,
            "pubdate": current_utc_time,
            "view": 0
        }
        

        x = board.insert_one(post)
        print(x.insert_id)
        return ""
    else:
        return render_template("write.html")


if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True, port=9000)

pymongo python 글쓰기 글상세보기 글리스트

回答 1

0

nambaksa

스샷의 pymongo.errors.serverselectiontimeouterror 오류는 보통 몽고디비가 설치되지 않아서 발생하는 오류 입니다만...

 

name = request.form.get("name")
        title = request.form.get("title")
        contents = request.form.get("contents")
        print(name, title, contents)

스샷에 print 가 잘 된다고 말씀하신 부분은 위 부분의 단지 form.get() 한 내용을 말씀하시는거라면 위 내용은 DB와 아무런 상관이 없는 영역입니다. 일단 robot 3t 로 접속도 안된다고 하셨으니 몽고디비가 제대로 설치되어있는지 부터 확인해보세요. 

몽고디비 설치폴더에서 mongo.exe 가 동작하는지 보시면 될듯 합니다.

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

65

2

리스트 이동 시 창 에러 발생

0

75

1

배포후 회원 등록 후 로그인 에러...

0

73

2

내부 서버 오류

0

67

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

53

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

47

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

74

3

500이 뜹니다.

0

57

2

첨부파일 삭제

0

66

2

검색기능 질문

0

61

2

google.py

0

66

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

81

3

혹시 전체 코드 공개되어 있나요?

0

96

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

103

1

google.py 몽고db 샘플데이터 만들기

0

100

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

236

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

304

1

현재 구글검색 무한스크롤변경 문의합니다

0

297

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

218

1

IIS 500.19에러

0

659

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

258

1

데이터베이스 저장관련 질문입니다.

0

270

1

test가 생기지 않습니다.

0

509

3