커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
[4-8강] 주문저장 확인 메시지가 안뜹니다.
undefined주차
북마크
신*렬
댓글
50
추천
0
조회수
44
조회수
44
답변 완료

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

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


코드스니펫을 그대로 갖다 붙여서 수업을 따라갔습니다. 강의 영상에서 뜨는 저장완료 메시지박스가 뜨질 않아

콘솔화면을 보니 에러가 떠있어 왁인해 보니, app.py 쪽에 Indentation 오류 등 몇개의 오류가 있어

다 수정하였고 코드쪽에서는 오류 표시가 없습니다. 그리고 강의 자료 완성코드에는 들어있는 한줄의 코드를

복사해다 삽입하기도 했는데도 여전히 강의영상과 같은 메시지박스가 뜨지 않고 DevTools 에는 캡쳐이미지와 같이

오류가 표시되고 있습니다.



스파르타 즉문즉답


스파르타 즉문즉답



보고 계

신 화면 전체를 캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.




작성한 코드 및 에러 메세지

app.py

~~~~~~~~~~~~~~~~~

from flask import Flask, render_template, request, jsonify

app = Flask(__name__)


from pymongo import MongoClient

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

db = client.dbsparta


@app.route('/')

def home():

    return render_template('index.html')


@app.route("/mars", methods=["POST"])

def mars_post():

    name_receive = request.form['name_give']

    address_receive = request.form['address_give']

    size_receive = request.form['size_give']


    doc = {'name':name_receive,

           

        'address':address_receive,

        'size':size_receive

    }

    db.mars.insert_one(doc)

   

    return jsonify({'msg':'저장 완료!'})


@app.route("/mars", methods=["GET"])

def mars_get():

    mars_data = list(db.mars.find({},{'_id':False}))

    return jsonify({'msg':'GET 연결 완료!'})


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>


    <link href="https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&display=swap" rel="stylesheet" />


    <title>선착순 공동구매</title>


    <style>

        * {

            font-family: "Gowun Batang", serif;

            color: white;

        }


        body {

            background-image: linear-gradient(0deg,

                    rgba(0, 0, 0, 0.5),

                    rgba(0, 0, 0, 0.5)),

                url("https://cdn.aitimes.com/news/photo/202010/132592_129694_3139.jpg");

            background-position: center;

            background-size: cover;

        }


        h1 {

            font-weight: bold;

        }


        .order {

            width: 500px;

            margin: 60px auto 0px auto;

            padding-bottom: 60px;

        }


        .mybtn {

            width: 100%;

        }


        .order>table {

            margin: 40px 0;

            font-size: 18px;

        }


        option {

            color: black;

        }

    </style>

    <script>

        $(document).ready(function () {

            show_order();

        });

        function show_order() {


            let name =$('#name').val()

            let address =$('#address').val()

            let size =$('#size').val()


            fetch('/mars').then((res) => res.json()).then((data) => {

               

                alert(data['msg'])

            })

        }

        function save_order() {

            let name =$('#name').val()

            let address =$('#address').val()

            let size =$('#size').val()


            let formData = new FormData()

            formData.append("name_give", name)

            formData.append("address_give", address)

            formData.append("size_give", size)


            fetch('/mars', { method: "POST", body: formData }).then((res) => res.json()).then((data) => {

               

                alert(data["msg"])

                window.location.reload()

            });

        }

    </script>

</head>


<body>

    <div class="mask"></div>

    <div class="order">

        <h1>화성에 땅 사놓기!</h1>

        <h3>가격: 평 당 500원</h3>

        <p>

            화성에 땅을 사둘 수 있다고?<br />

            앞으로 백년 간 오지 않을 기회. 화성에서 즐기는 노후!

        </p>

        <div class="order-info">

            <div class="input-group mb-3">

                <span class="input-group-text">이름</span>

                <input id="name" type="text" class="form-control" />

            </div>

            <div class="input-group mb-3">

                <span class="input-group-text">주소</span>

                <input id="address" type="text" class="form-control" />

            </div>

            <div class="input-group mb-3">

                <label class="input-group-text" for="size">평수</label>

                <select class="form-select" id="size">

                    <option selected>-- 주문 평수 --</option>

                    <option value="10평">10평</option>

                    <option value="20평">20평</option>

                    <option value="30평">30평</option>

                    <option value="40평">40평</option>

                    <option value="50평">50평</option>

                </select>

            </div>

            <button onclick="save_order()" type="button" class="btn btn-warning mybtn">

                주문하기

            </button>

        </div>

        <table class="table">

            <thead>

                <tr>

                    <th scope="col">이름</th>

                    <th scope="col">주소</th>

                    <th scope="col">평수</th>

                </tr>

            </thead>

            <tbody id="order-box">

                <tr>

                    <td>홍길동</td>

                    <td>서울시 용산구</td>

                    <td>20평</td>

                </tr>

                <tr>

                    <td>임꺽정</td>

                    <td>부산시 동구</td>

                    <td>10평</td>

                </tr>

                <tr>

                    <td>세종대왕</td>

                    <td>세종시 대왕구</td>

                    <td>30평</td>

                </tr>

            </tbody>

        </table>

    </div>

</body>


</html>


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