커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
맥북 localhost:5000
undefined주차
북마크
이*웅
댓글
26
추천
0
조회수
55
조회수
55
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


제 친구껄로(맥북m2에어)으로도 테스트용으로 한번 해보고 있는데 그 강의 듣다가 맥북은 호스트 주소가 다르다고 들었던거같은데 그 강의가 어떤거였는지 기억도안나고 못찾고 있어서요 localhost:5000아니고 뭐였죠?



일단 app.py 파일은

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)


from pymongo import MongoClient

client = MongoClient('mongodb+srv://sparta:test@cluster0.uwpeadc.mongodb.net/?retryWrites=true&w=majority')

db = client.dbsparta


@app.route('/')

def home():

return render_template('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})


if __name__ == '__main__':

app.run('0.0.0.0', port=5000, debug=True)


index.html파일은

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />


<link

href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"

rel="stylesheet"

integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"

crossorigin="anonymous"

/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script

src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"

integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"

crossorigin="anonymous"

></script>


<title>초미니홈피 - 비둘기사냥일지</title>

<meta property="og:title" content="비둘기" />

<meta property="og:description" content="구구구" />

<meta property="og:image" content="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABQODxIPDRQSEBIXFRQYHjIhHhwcHj0sLiQySUBMS0dARkVQWnNiUFVtVkVGZIhlbXd7gYKBTmCNl4x9lnN+gXwBFRcXHhoeOyEhO3xTRlN8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fP/AABEIAIIAggMBIgACEQEDEQH/xAAbAAABBQEBAAAAAAAAAAAAAAAEAAECAwUGB//EADcQAAIBAwIEAwYEBQUBAAAAAAECAAMEERIhBRMxQSJRcQYUMlJhgUKR0eEzcoKhwWJjkrHwFf/EABgBAAMBAQAAAAAAAAAAAAAAAAECAwAE/8QAIBEBAQACAgICAwAAAAAAAAAAAAECESExAxJBYSIyUf/aAAwDAQACEQMRAD8A53VtKXO8cNtItvvKFREmsgJNYDLkMJptBFl6EQCPpNjEMRtpmI+8KSptHlJYKLSJaUmpGNSMmvzjrLUeBa5YtSCmjRR5YKv1mcK0c18RTNIXIU9YbbXKtjecw9ySYTa3JBG8nkpjNur1jzimQL04G8aT2f1cGNusYknrJYjYl0iEkIwEmF2yZgOstUyoSYmFcrS0VMQYGPq2zDAok1Y3NgxYmLJh2XQrmyQqzQ4TwFrqmtxduaVFt1UfEw/wJ0FDhfC6Q0rao31clj/ebYbcjzcdZFqxnZV+A8OuE8NHlNjZqZxj7dJyfFeG1eG3HLc6kbdHHcRdmCa8mE0XwRAx1lyNiLVMWkKu3WKB8yKJpTbJxFiTAj4lEUUTU2ApJPQCFjhl6Rq92qkfyzU9l7ZalerWZQdAwPpOp6TbZ569tVpfxKTp6riR0T0X4huAw9INX4TY3IOugqt8yeEwezacHpixOivvZqrRBe1bnIPwkYYfrMRqZBIIIIjS7DSjEP4LY++8QRHXNJPG/oO33OILpnU8BtvdeG80jFSuc/09oS0Tc1K+vCocdsTH4lxmvw91U0d2GcmbjN3g1zRoXAHOpq+OmRHvRZ9pcI4wbqglR006tiJZ7TUxX4TzAMmm4bPkOkEcqgAp4QDoANpm1uJcRpVCK2fd2206PCw9f8SOdmPK/jwud1GT8Jjgy+rSp1FNa3+EfEh6r+0oAgmUym4NxuN1UtUUjiKZlQXuYsSXWLEYG/7KJvXbScbDM6QjyM572VamvNU1dLk7KT1nSEfUTFV4x+0mu/X85JEBO/8AaW6QPOJRRH/vrMvjPCEu0NaguK4G4A+P95rYHeLUfwrNJQtjmLL2bqu6vdkU6YOSg3Y/pN+rba8aTjAwBjpCRk9cR8R9ks2zvcqg/Esg9j3J/Kacrqg6TG9g0zKfDs1Bk7TL9pKbrchDkUlUaR29Z0tEwTj1qK9kagHip7/bvJcb2rLdOKpk0n1Dp0I8x3EiBLKi4YxgIdSdH9rl2WgxR8RQMoxFiGNZtp1AQdlKnfYwy7CzS/hl2LC7WuyBwBjE7e1r+9W6VlTSHGQDOGtrO4u3029Fqh74Gw+/QTqOD2VzYkJXuxuM8lRnA+pjUl02FBHlHLYkTUHnB63Lc5Ytt5MR/wBTTFO5LHuqa7ahq8oO9+B1IUfUyi4oUqu5yD5gwYcPt85fLfzEmUmJdjlvUJ+IsfIQylVDAdoDQShRXSqASbIlQ5Dsh/0mCwZR7jIyp3EZHDqJRTXlqWNZjgZ3xKbatkCTUG6NJ2knQVKTI3RgQYytkSQMnLyauAu00VSD1lAhF64e5qsOhYkfnB5QYlFGigM2bSoCulpC8sObvRUsT2AzF/8ASpW/8HhFUn/cIH6yup7Q8QI00bSlS+xb9IJ47LvbXy7mtNSwPEaFpy3p0qSIvhAHiMHTjlvQQK4qU6q/EGXOo9z5zNpXl5eMVvL97c9kTC5HqJceH2Z8Ts1ZvmdsmXk/jnv2OpcZp3BbQdx2IxE98T3mVVSim3L046MkoNX5a2fo0O9Bpse+HzkWvPrMc13HYH0Mb3kk+JT9oPYfVrC9+ssW+I7zIV9fRG/KEUaBJy2w8ottPJGm9+9ReWp2PxH/ABL7etjEyQwVsL0ELoNuIluobXLoKD5Ee+uBa2Nat3VTj17Si0yQJj+0l8KlRbSmfDT3f6ny+0jjzkfKaYTHJiAjSY+ktSwtEUliKKbToq7Wtup5rD0/aY93xLX4bdAq/MYIVLtliWaJilLdsFvLtBfJllxGnixx5qnQzPqcFvWEiuyjAEpTiBpVNR5bD5SIYvEuHV9qq8pvMdI03Ogtl7CtWZusocBu0Oq0rRxqpXlHH1cCBVAinw3FBvSoJt35bj4RQKp6QlGXygRJznY+hzJcxl/CY8yJZto06gHSXmphczKt7gc9VqeFW7mbNCzqVWyy4Elnmrh41FJWJ6bzStLZmIOJMJa2q5rVkB+Ubn8oPccYIUpZpyx87fF+0l+WfSn44j+IcQXh9HlUiDcEf8PqZzDEsSSSSepMmxLEkkknuY2mWxxmMQt3UAJMCOBLFWa00iOmKW6Youz6ZtxebFKWw7nuYCzZ7yBbMbMrJJ0jbalmOADIZj50+sILQqjqJLSh7SjVJBoNssNBT0k6NStanNJtvlIyD9pWHj68xLVJBSXxqg0qwRtXdVA0yy3vaSLy6zcxB0wN19DMp+uQYkfEHrs3vrh01C44cVwqtVY9mOD9txCadG3rDwUVAI2JYhh/czmqVcKek1LS/wBJG8nlLOqpjcb8C6nDq6E6U1L2IIkBY1+6Y/qE0aV4tRMZmbc3LUamM5UwTyZXhr45ORFPhtVvxJn1k34dXojU1PK+Y3EHtr/xDeb9lfBlwTkQXO/Les1wxOXFOkNC0JzyxvFN7l39PLoo0U6nOUUUUDFHEUU1GJR4ooikRaViKKNOk8u1tPrLqJOYooMj4ta1Jx1kL/4R6xRTmx/Z05fqpoHabFgTtuYoo2YYNoE4G8UUUid//9k=" />


<link

href="https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@200;300;400;500;600;700;900&display=swap"

rel="stylesheet"

/>

<style>

* {

font-family: "Noto Serif KR", serif;

}

.mypic {

width: 100%;

height: 300px;


background-image: linear-gradient(

0deg,

rgba(0, 0, 0, 0.5),

rgba(0, 0, 0, 0.5)

),

url("https://upload.wikimedia.org/wikipedia/commons/4/46/Pigeon.jpg");

background-position: center 30%;

background-size: cover;


color: white;


display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

}


.mypost {

width: 95%;

max-width: 500px;

margin: 20px auto 20px auto;


box-shadow: 0px 0px 3px 0px black;

padding: 20px;

}


.mypost > button {

margin-top: 15px;

}


.mycards {

width: 95%;

max-width: 500px;

margin: auto;

}


.mycards > .card {

margin-top: 10px;

margin-bottom: 10px;

}

</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 class="card-body">

<blockquote class="blockquote mb-0">

<p>새로운 앨범 너무 멋져요!</p>

<footer class="blockquote-footer">호빵맨</footer>

</blockquote>

</div>

</div>

<div class="card">

<div class="card-body">

<blockquote class="blockquote mb-0">

<p>새로운 앨범 너무 멋져요!</p>

<footer class="blockquote-footer">호빵맨</footer>

</blockquote>

</div>

</div>

</div>

</body>

</html>








취소
 공유
취소
댓글 0
댓글 알림
나의얼굴