커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
스파르타 피디아에서 url, 코멘트 기록하기에서 에러가 납니다.
undefined주차
북마크
장*용
댓글
3
추천
0
조회수
9
조회수
9
답변 완료

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

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


스파르타 피디아 실습 중 url, 코멘트를 기록하면 저장완료! 창이 떠야하는데 뜨질 않습니다.

몽고 DB에도 movies 폴더가 만들어 지지않았구요...




스파르타 즉문즉답




작성한 코드 및 에러 메세지

터미널에서 에러 메시지 입니다.

127.0.0.1 - - [21/May/2023 21:59:31] "GET / HTTP/1.1" 200 -

127.0.0.1 - - [21/May/2023 21:59:31] "GET /movie HTTP/1.1" 200 -

127.0.0.1 - - [21/May/2023 21:59:51] "POST /movie HTTP/1.1" 500 -

Traceback (most recent call last):

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\flask\app.py", line 2213, in __call__

  return self.wsgi_app(environ, start_response)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\flask\app.py", line 2193, in wsgi_app

  response = self.handle_exception(e)

        ^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\flask\app.py", line 2190, in wsgi_app

  response = self.full_dispatch_request()

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\flask\app.py", line 1486, in full_dispatch_request

  rv = self.handle_user_exception(e)

     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\flask\app.py", line 1484, in full_dispatch_request

  rv = self.dispatch_request()

     ^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\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\Boriborifamily\Desktop\sparta\projects\03.pedia\app.py", line 35, in movie_post

  db.movies.insert_one(doc)

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\collection.py", line 628, in insert_one

  self._insert_one(

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\collection.py", line 569, in _insert_one

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

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\mongo_client.py", line 1476, in _retryable_write

  return self._retry_with_session(retryable, func, s, None)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\mongo_client.py", line 1349, in _retry_with_session    

  return self._retry_internal(retryable, func, session, bulk)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\_csot.py", line 105, in csot_wrapper

  return func(self, *args, **kwargs)

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\mongo_client.py", line 1390, in _retry_internal

  return func(session, sock_info, retryable)

e-packages\pymongo\pool.py", line 767, in command

  return command(

      ^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\network.py", line 127, in command

  request_id, msg, size, max_doc_size = message._op_msg(

                     ^^^^^^^^^^^^^^^^

 File "C:\Users\Boriborifamily\Desktop\sparta\projects\03.pedia\venv\Lib\site-packages\pymongo\message.py", line 692, in _op_msg

  return _op_msg_uncompressed(flags, command, identifier, docs, opts)    

      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    

bson.errors.InvalidDocument: cannot encode object: <meta content="가디언즈 오브 갤럭시: Volume 3" property="og:title"/>, of type: <class 'bs4.element.Tag'>



app.py 코드

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)


from pymongo import MongoClient

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

db = client.dbsparta


import requests

from bs4 import BeautifulSoup


@app.route('/')

def home():

    return render_template('index.html')


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

def movie_post():

    url_receive = request.form['url_give']

    comment_receive = request.form['comment_give']


    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}

    data = requests.get(url_receive,headers=headers)


    soup = BeautifulSoup(data.text, 'html.parser')


    ogtitle = soup.select_one('meta[property="og:title"]')

    ogimage = soup.select_one('meta[property="og:image"]')

    ogdesc = soup.select_one('meta[property="og:description"]')


    doc = {

        'title':ogtitle,

        'desc':ogdesc,

        'image':ogimage,

        'comment':comment_receive

    }

    db.movies.insert_one(doc)


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


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

def movie_get():

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


if __name__ == '__main__':

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




index.html function posting 부분

        function posting() {

            let url = $('#url').val()

            let comment = $('#comment').val()


            let formData = new FormData();

            formData.append("url_give", url);

            formData.append("comment_give", comment);


            fetch('/movie', { method: "POST", body: formData }).then((res) => res.json()).then((data) => {

                alert(data['msg'])

            })

        }



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