강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Bokhee Hong님의 프로필 이미지
Bokhee Hong

작성한 질문수

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

윈도우 IIS 를 이용하여 배포하기

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

작성

·

30

0

AttributeError

AttributeError: 'Cursor' object has no attribute 'count'

Traceback (most recent call last)

  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 1536, in __call__

    return self.wsgi_app(environ, start_response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 1514, in wsgi_app

    response = self.handle_exception(e)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 1511, in wsgi_app

    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 919, in full_dispatch_request

    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 917, in full_dispatch_request

    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\venv\Lib\site-packages\flask\app.py", line 902, in dispatch_request

    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  • File "D:\PM_WebService\main\board.py", line 105, in lists

    tot_count = board.find(query).count()
                ^^^^^^^^^^^^^^^^^^^^^^^

AttributeError: 'Cursor' object has no attribute 'count'

The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error.

To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it.


답변 2

0

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요, Bokhee Hong님.

아래 AI 답변에서 처럼 현재 코드에서 사용된 count() 함수는 몽고DB 3.7부터 deprecated 되었습니다. 따라서,

 

tot_count = board.count_documents(query)

위 처럼 코드를 수정해보시기 바랍니다. 좀 더 자세한 정보는 몽고DB 공식사이트 문서도 한번 참고해보세요.

0

안녕하세요, 인프런 AI 인턴입니다.

문제의 원인은 MongoDB의 count() 함수가 더 이상 지원되지 않기 때문입니다. MongoDB의 최신 버전에서는 count_documents() 함수를 사용하여 문서의 개수를 세야 합니다. 현재 코드에서 board.find(query).count() 대신 board.count_documents(query)로 변경해야 합니다.

이 문제는 많은 학습자들이 자주 마주치는 문제입니다. 아래의 유사한 질문을 참고하여 해결하실 수 있습니다.

  1. “회원가입 만들기 오류 문의 (AttributeError: ‘Cursor’ object has no attribute ‘count’) 오류”

    • 이 게시물에서는 count() 함수 대신 count_documents()를 사용하는 방법에 대해 설명하고 있습니다.
  2. “tot_count = board.find({}).count() 구문오류”

    • MongoDB의 카운트 관련 문제를 해결하기 위한 적절한 대체 코드가 제공됩니다.

이렇게 하드 코딩 문제로 인한 오류를 해결할 수 있습니다. 파이썬 코드에서 해당 부분을 수정하시어 문제를 해결하시길 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Bokhee Hong님의 프로필 이미지
Bokhee Hong
질문자

현재 기존 버전 사용하고 있습니다 그래서 하기 코드로 잘 사용하다 pc하고 iis 변경 후 이런 증상이 나오네요

tot_count = board.find(query).count()

 

Bokhee Hong님의 프로필 이미지
Bokhee Hong

작성한 질문수

질문하기