-
Notifications
You must be signed in to change notification settings - Fork 6
트러블 슈팅
김혜린 edited this page Oct 18, 2021
·
9 revisions
1. 이미지 저장 문제
-
게시물 업로드시 이미지를 업로드하지 않는 경우와 게시물 수정시 이미지를 업로드하지 않는 경우에 이미지 태그의 파일값을 불러오는 부분이 undefined로 처리되어 API가 호출되지 않는 에러가 발생.
-
1차 시도: file type의 input 태그에 default 이미지를 넣는 방법을 찾아보았으나 보안 상의 이유로 불가능하다는 답변을 발견.
-
해결: 이미지 파일의 유무를 확인하는 변수(bool)을 선언하여 파일의 부재시 임의로 data를 넣어 API를 호출하는 방향으로 해결. API로 넘어온 변수(bool)에 따라 분기문으로 나누어 데이터 업로드 및 업데이트.
@app.route('/api/insert_form', methods=['POST'])
def save_insert() :
datas = list(db.weling.find({}))
id = int(datas[-1]['id']) + 1
bool = request.form['bool'] # file값의 유무를 확인 하는 변수
date = request.form['date_give']
title = request.form['title_give']
roadaddress = request.form['roadaddress_give']
detailaddress = request.form['detailaddress_give']
postcode = request.form['postcode_give']
content = request.form['content_give']
doc = {
'id' : id,
'date' : date,
'title' : title,
'postcode' : postcode,
'roadaddress' : roadaddress,
'detailaddress' : detailaddress,
'content' : content
}
2.comment 입력, 수정, 삭제시 화면이 reload 되면서 comment tab이 아닌 content tab으로 이동
- ajax를 활용하여 해결
- 저장, 수정, 삭제 후 수정된 데이터를 response로 받아 사용자 정의한 함수를 활용하여 리스트업하였다.
- radio의 check 속성을 content tab에서 comment tab으로 바꾸고 리스트업한 결과물을 붙여 출력하였다.
1. Pagination 기능 구현중 JavaScript 사용시 문제가 발생하여 Jinja 문법을 사용하여 수정
<div class="page">
{% if block_start - 1 > 0 %}
<a href="{{url_for('board_list', page=block_start - 1)}}" >[이전]</a>
{% endif %}
{% for i in range(block_start, block_end + 1)%}
{% if i > last_page_num %}
{% else %}
{% if i == page %}
<b>{{ i }}</b>
{% else %}
<a href="{{url_for('board_list', page=i)}}">{{ i }}</a>
{% endif %}
{% endif %}
{% endfor %}
{% if block_end < last_page_num %}
<a href="{{url_for('board_list', page=block_end + 1)}}" >[다음]</a>
{% endif %}
</div>
2.이미 존재하는 아이디로 회원가입을 시도했을 시, 회원가입 가능
기존 함수를 분리한후, 새로운 함수를 추가하여 해결
1. 주소 입력 후 주소 API창이 닫히지않음 확인. Function형식이 맞지않아 Kakao API site에서 정보를 다시 받아와 입력후 해결
function postcode() {
new daum.Postcode({
oncomplete: function (data) {
var addr = '';
if (data.userSelectedType === 'R') {
addr = data.roadAddress;
} else {
addr = data.jibunAddress;
}
document.getElementById('postcode').value = data.zonecode;
document.getElementById("roadAddress").value = addr;
document.getElementById("detailAddress").focus();
}
}).open();
}