작성
·
251
1
겨우 에러 없에고 저장해놨던 파이로로 다시 해보고 있는데
전과 같은 댓글이 잘 작성이 되긴 하는데
Robo T3 에 board, members 외에 comment 라는 것이 생성되고 그안에 댓글들이 저장되고 있습니다.
우선 반복적으로 해봐서 보안강화 를 무사히 끝네고
Ajax 이전에 있는 댓글기능 구현에서 문제가 생기는건 확인하였습니다.
그리고 확실치는 않지만 여러번 해본결과 board.py 에서 댓글기능 하면서
comment_write 함수 안에서 문제가 생긴게 아닌가 추측되는거 까진 해보았으나
확실하지는 않습니다. 분명 동영상 내용과 제가 coding 한게 동일하다 생각되어
동영상 사진과 제가 coding 한 사진 그리고 T3 사진을 올립니다.
upload 한 사진에서 문제점이 보이신다면 그 네용과
해결할수 있는 방법과 실제 그럼 어디에 댓글이 저장되어야 하는지 알았으면 합니다.
동영상 강의 사진
coding 한 사진
T3 사진
답변 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))
위 처럼 디버깅을 해보시는게 좋을듯 합니다. 물론 위는 그냥 하나의 예시일 뿐입니다.