inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

게시판만들기 - 글 리스트

아래처럼 {% if datas.count() > 0%} 문법오류

673

thisauto

작성한 질문수 2

1

에러
{% if datas.count() > 0 %}
jinja2.exceptions.UndefinedError: 'pymongo.cursor.Cursor object' has no attribute 'count'
 
 
 
아래질문에서 처럼 하면
{% if datas|length > 0 %}
TypeError: object of type 'Cursor' has no len() 로 에러가 납니다
 
 
def lists():
board = mongo.db.board
datas = board.find({})
return render_template("list.html", datas = datas)
 
 
{% if datas.count() > 0 %}
: :
 
{% else %}
<h3>데이터가 없습니다~~</h3>
{% endif %}

python

답변 3

0

남박사

몽고디비 버전을 몇을 사용하시는지는 모르겠습니다만 강좌에서 진행되는 버전은 아닌것으로 보입니다. 말씀하신 db.collection.count() 함수는 3.6 버전까지만 지원하는것으로 보입니다.

 

https://docs.mongodb.com/manual/reference/method/db.collection.countDocuments/

https://pymongo.readthedocs.io/en/stable/api/pymongo/collection.html#pymongo.collection.Collection.count_documents

 

위 링크의 문서를 참고해보시기 바랍니다.

0

thisauto

추가로 
def lists(): 
 board = mongo.db.board 
 datas = board.find({}) 

 datas의 count의 개수를 구하려고 합니다
MongoDB count() Method – db.Collection.count() 에서 처럼
roubo3T에서 db.getCollection('board').find({}).count() 하면 데이타레코드 갯수를 불러오는데

코딩으로
recordcount = board.find({}).count() 표현하면 오류가 발생하네요?
AttributeError: 'Cursor' object has no attribute 'count'
다른방법은 없나요?

0

가후

같은 문제에 봉착했네요 해결책은

 

count()는 이제 쓰지 않으니 count_documents({}) 이걸 사용하시면 됩니다

기존코드(영상에 나오는)

tot_count = board.find({}).count() 

위 코드에서

tot_count = board.count_documents({})

이렇게 바꾸시면 됩니다.

 

사용법을 정리하자면

 

콜렉션명.count_documents({조건}) 입니다

저희는 전체 게시물 개수를 가녀와야 하니

조건을 비워두면 전체 게시물 개수를 세어줍니다.

 

진도 나가기가 정말힘드네요

화이팅 하세요

0

남박사

몽고 DB 3.7 인가 부터 collection 의 count() 함수를 더 이상 사용할 수 없습니다. 

def lists(): 
board = mongo.db.board 
datas = board.find({}) 
return render_template("list.html", datas = list(datas))

위의 코드처럼 데이터를 넘길때 list 형태로 캐스팅 해서 넘겨야

{% if datas|length > 0 %} 

length 를 사용할 수 있을것 같습니다.

0

thisauto

친절한 답변 감사드립니다.

0

남박사

네 그렇게 직접 리스트변수를 선언해서 append 시켜서 넘기셔도 됩니다. 어쨌든 본인이 직접 구글링해보고 스스로 문제를 해결 하셨다는점에 대해 진심으로 박수 보내드리고 싶습니다. 

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

0

83

2

리스트 이동 시 창 에러 발생

0

89

1

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

0

87

2

내부 서버 오류

0

85

2

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

0

65

2

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

0

62

1

몽고db studio3T를 깔았는데

0

69

2

flake8과 linter

0

88

3

500이 뜹니다.

0

66

2

첨부파일 삭제

0

73

2

검색기능 질문

0

74

2

google.py

0

75

2

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

0

92

3

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

0

100

1

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

0

112

1

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

0

110

2

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

0

250

2

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

0

314

1

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

0

306

1

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

0

222

1

IIS 500.19에러

0

667

2

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

0

264

1

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

0

279

1

test가 생기지 않습니다.

0

517

3