폴더 및 파일 생성
가상환경 생성
pip install 설치 패키지
요청 정보 : URL= /bucket , 요청 방식 = POST
클라(fetch) → 서버(flask) : bucket
서버(flask) → 클라(fetch) : 메시지를 보냄 (버킷리스트 저장 완료!)
데이터를 받을 곳부터 만든다. app.py
index.html
...
@app.route("/bucket", methods=["POST"])
def bucket_post():
bucket_receive = request.form['bucket_give']
doc = {
'bucket':bucket_receive
}
db.bucket.insert_one(doc)
return jsonify({'msg': '저장 완료!'}) # 메시지를 반환
@app.route("/bucket", methods=["GET"])
def bucket_get():
all_buckets = list(db.bucket.find({},{'_id':False}))
return jsonify({'result': all_buckets})
...
...
<head>
...
<style>
...
</style>
<script>
$(document).ready(function () {
show_bucket();
});
function show_bucket() {
fetch('/bucket').then(res => res.json()).then(data => { /* /bucket API 에 요청을 보낸다 */
let rows = data['result']
$('#bucket-list').empty()
rows.forEach((a) => {
let bucket = a['bucket']
let temp_html = `<li>
<h2>${bucket}</h2>
</li>`
$('#bucket-list').append(temp_html)
})
})
}
/* '기록하기' 버튼을 눌렀을 때의 반응 */
function save_bucket() {
let bucket = $('#bucket').val();
/* 데이터를 담아서 */
let formData = new FormData();
formData.append("bucket_give", bucket);
/* 담은 데이터를 /bucket API 로 보낸다 */
fetch('/bucket', { method: "POST", body: formData, }).then((response) => response.json()).then((data) => {
alert(data["msg"]); /* 서버에서 반환된 메시지를 받아서 알림을 띄운다 */
window.location.reload();
});
}
</script>
</head>
<body>
<div class="mypic">
<h1>나의 버킷리스트</h1>
</div>
<div class="mybox">
<div class="mybucket">
<input id="bucket" class="form-control" type="text" placeholder="이루고 싶은 것을 입력하세요" />
<button onclick="save_bucket()" type="button" class="btn btn-outline-primary">기록하기</button>
</div>
</div>
<div class="mybox" id="bucket-list">
<li>
<h2>✅ 호주에서 스카이다이빙 하기</h2>
</li>
</div>
</body>
</html>