사견/노트
0510 TIL
Mo'Greene
2022. 5. 11. 00:28
오늘의 결과
Get방식을 기존 ajax, 자바스크립트 코드가 아닌 jinja2로 이용
jinja2 의 장점 :
html코드 안에서 연산작업을 수행
중복된 코드를 줄일 수 있음
@app.route('/review/comment', methods=['POST'])
def comment_post():
place_receive = request.form['place_give']
comment_receive = request.form['comment_give']
file = request.files["file_give"]
extension = file.filename.split('.')[-1]
today = datetime.now()
mytime = today.strftime('%Y-%m-%d-%H-%M-%S')
filename = f'file-{mytime}'
save_to = f'static/{filename}.{extension}'
file.save(save_to)
doc = {
"place": place_receive,
"comment": comment_receive,
"file": f'{filename}.{extension}'
}
db.festivareview.insert_one(doc)
return jsonify({'result': 'success', 'msg': f'"{place_receive}" 저장!'})
function save_review() {
let place = $('#place').val()
let comment = $('#comment').val()
let file = $('#file')[0].files[0]
let form_data = new FormData()
form_data.append("file_give", file)
form_data.append("place_give", place)
form_data.append("comment_give", comment)
$.ajax({
type: "POST",
url: "/review/comment",
data: form_data,
cache: false,
contentType: false,
processData: false,
success: function (response) {
alert(response["msg"])
window.location.reload()
}
});
}
사진을 서버에 포스팅
오늘의 오류
몽고db의 데이터를 Get으로 ajax가 아닌 jinja2로 보내는 과정에서 하루 시간의 절반이상을 잡아먹음
알고보니
get방식을 return jsonify(###) 등으로 보내고있었음
return render_template(index.html)로 바꾸니 근원문제 해결
{% for row in rows %}
{% set gu_name = row.MSRSTE_NM %}
{% set gu_mise = row.IDEX_MVL %}
<li>{{ gu_name }}: {{ gu_mise }}</li>
{% endfor %}
이 방식을 깊이 유념하자..