inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

pymongo.errors.ServerSelectionTimeoutError 및 DB연결 문제

미해결

남박사의 파이썬으로 실전 웹사이트 만들기

안녕하세요 몇 가지 문제가 생겨 질문드립니다. 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 좋아요 1 조회수 2775

인기 태그

인프런 TOP Writers

주간 인기글