inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

댓글 저장문제

315

nicolas83

작성한 질문수 46

1

겨우 에러 없에고 저장해놨던 파이로로 다시 해보고 있는데

전과 같은 댓글이 잘 작성이 되긴 하는데 

Robo T3 에 board, members 외에 comment 라는 것이 생성되고 그안에 댓글들이 저장되고 있습니다.

우선 반복적으로 해봐서 보안강화 를 무사히 끝네고 

Ajax 이전에 있는 댓글기능 구현에서 문제가 생기는건 확인하였습니다.

그리고 확실치는 않지만 여러번 해본결과 board.py 에서 댓글기능 하면서

comment_write 함수 안에서 문제가 생긴게 아닌가 추측되는거 까진 해보았으나 

확실하지는 않습니다. 분명 동영상 내용과 제가 coding 한게 동일하다 생각되어

동영상 사진과 제가 coding 한 사진 그리고 T3 사진을 올립니다.

upload 한 사진에서 문제점이 보이신다면 그 네용과

해결할수 있는 방법과 실제 그럼 어디에 댓글이 저장되어야 하는지 알았으면 합니다.

동영상 강의 사진

coding 한 사진

T3 사진

python

답변 1

0

남박사

올려주신 이미지는 별 문제가 없어보입니다만... 

실제 코딩을을 하다보면 별의별 문제가 생기는 경우가 많습니다. 이런 경우 어떻게 이 문제를 해결해야하는지 스스로의 노하우를 만들어놔야 차후에 이런 다양한 문제를 해결 하실 수 있습니다. 보통 이런 과정을 디버깅 한다고 표현하기도 합니다.

파이썬에서 가장 흔하게 사용되는 디버깅 방식은 vs 코드의 디버깅 툴을 활용하는 방식이 있고 더 쉬운 방식으론 print() 문을 적극 활용하여 의심가는 구문에 print() 문을 출력하여 데이터가 제대로 넘어오는지 확인하는 방식입니다. 코드 어디까지 정상적으로 동작하는지도 확인하고 데이터가 제대로 넘어오는지도 확인할 수 있습니다.

웹의 기능은 결론적으로 데이터를 받아서 데이터베이스에 넣는게 전부입니다. 그럼 먼저 데이터가 제대로 넘어오는지 print 해보시고 넘어오는 데이터에 문제가 없다면 정상적으로 해당 db와 연결되었는지 그리고 제대로 insert 되는지 확인을 해보셔야 합니다. 중요한건 딱 이 2가지 입니다. 

@blueprint.route("/comment_write", methods=["POST"])
@login_required
def comment_write():
    if request.method = "POST":
        print("POST OK")
        name = session.get("name")
        writer_id = session.get("id")
        root_idx = request.form.get("root_idx")
        comment = request.form.get("comment")
        current_utc_time = round(datetime.utcnow().timestamp() * 1000)
        c_comment = mongo.db.comment
        post = {
            "root_idx": str(root_idx),
            "writer_id": writer_id,
            "name": name,
            "comment": comment,
            "pubdate": current_utc_time
        }

        print(post)

        c_comment.insert_one(post)
        return redirect(url_for("board.board_view", idx=root_idx))


@blueprint.route("/comment_write", methods=["POST"])
@login_required
def comment_write():
    if request.method = "POST":
        print("POST OK")
        current_utc_time = round(datetime.utcnow().timestamp() * 1000)
        post = {
            "root_idx": "aaaaaaa",
            "writer_id": "debug",
            "name": "디버깅",
            "comment": "디버깅 테스트",
            "pubdate": current_utc_time
        }
        print(post)
        c_comment.insert_one(post)
        return redirect(url_for("board.board_view", idx=root_idx))

위 처럼 디버깅을 해보시는게 좋을듯 합니다. 물론 위는 그냥 하나의 예시일 뿐입니다.

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

0

64

2

리스트 이동 시 창 에러 발생

0

74

1

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

0

73

2

내부 서버 오류

0

67

2

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

0

53

2

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

0

45

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

72

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

296

1

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

0

218

1

IIS 500.19에러

0

659

2

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

0

257

1

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

0

270

1

test가 생기지 않습니다.

0

509

3