폴더 및 파일 생성
가상환경 생성
pip install 설치 패키지
1.요청정보 : URL = "http://spartacodingclub.shop/sparta_api/weather/seoul" 요청방식 = GET
2.클라(fetch) → 서버(OpenAPI) : 없음
3.서버(OpenAPI) → 클라(fetch) : 서울 날씨 정보를 불러옴
데이터를 받을 곳부터 만든다. app.py
index.html
...
@app.route("/guestbook", methods=["POST"])
def guestbook_post():
name_receive = request.form['name_give']
comment_receive = request.form['comment_give']
doc = {
'name':name_receive,
'comment':comment_receive
}
db.fan.insert_one(doc)
return jsonify({'msg': '저장 완료!'})
@app.route("/guestbook", methods=["GET"])
def guestbook_get():
all_comments = list(db.fan.find({},{'_id':False}))
return jsonify({'result': all_comments})
...
...
<head>
...
<title>초미니홈피 - 팬명록</title>
<!-- og 태그 -->
<!-- og:image : '이미지 주소 복사'로 url 넣기 -->
<meta property="og:title" content="왁굳형 팬명록" />
<meta property="og:description" content="형에게 응원 한마디!" />
<meta property="og:image" content="https://i.namu.wiki/i/CbBhVxmAkXCEVC0zzELg7J66aVyrjTG-dVasMl1snoH95PPTOgCHZPaA9HtgQ_d8L2cW3eho8nwGM9_seUcHlA.webp" />
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@200;300;400;500;600;700;900&display=swap"
rel="stylesheet" />
<style>
...
</style>
<script>
$(document).ready(function () {
set_temp();
show_comment();
});
/* 서울 날씨 */
function set_temp() {
fetch("http://spartacodingclub.shop/sparta_api/weather/seoul").then((res) => res.json()).then((data) => {
let temp = data['temp']
$('temp').text(temp)
});
}
/* 데이터 저장 */
function save_comment() {
let name = $('#name').val()
let comment = $('#comment').val()
let formData = new FormData();
formData.append("name_give", name);
formData.append("comment_give", comment);
fetch('/guestbook', { method: "POST", body: formData, }).then((res) => res.json()).then((data) => {
alert(data["msg"]);
window.location.reload()
});
}
/* 데이터 조회 */
function show_comment() {
fetch('/guestbook').then((res) => res.json()).then((data) => {
let rows = data['result']
$('#comment-list').empty()
rows.forEach((a => {
let name = a['name']
let comment = a['comment']
let temp_html =`<div class="card">
<div class="card-body">
<blockquote class="blockquote mb-0">
<p>${comment}</p>
<footer class="blockquote-footer">${name}</footer>
</blockquote>
</div>
</div>`
$('#comment-list').append(temp_html)
}))
})
}
</script>
</head>
<body>
<div class="mypic">
<h1>왁굳형 팬명록</h1>
<p>현재기온: <span id="temp">36</span>도</p>
</div>
<div class="mypost">
<div class="form-floating mb-3">
<input type="text" class="form-control" id="name" placeholder="url" />
<label for="floatingInput">닉네임</label>
</div>
<div class="form-floating">
<textarea class="form-control" placeholder="Leave a comment here" id="comment"
style="height: 100px"></textarea>
<label for="floatingTextarea2">응원댓글</label>
</div>
<button onclick="save_comment()" type="button" class="btn btn-dark">
댓글 남기기
</button>
</div>
<div class="mycards" id="comment-list">
<div class="card">
<div class="card-body">
<blockquote class="blockquote mb-0">
<p>새로운 앨범 너무 멋져요!</p>
<footer class="blockquote-footer">호빵맨</footer>
</blockquote>
</div>
</div>
<div class="card">
...
</div>
<div class="card">
...
</div>
</div>
</body>
</html>
og 태그가 정상적으로 작동하는지 확인하기 위해 카카오톡으로 해당 링크를 전송했다.
제목, 이미지, 설명이 뜨는 것을 확인
'카톡 링크'은 배포를 실행한 이후에 확인한 부분이므로
배포와 관련된 것을 찾고 싶다면
여기로