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

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

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


영화피디아에 기록하기 버튼을 클릭해도 msg도 안뜨고 db에도 안 올라갑니다ㅠㅠㅠ

db에도 movies 데이터가 뜨지 않습니다







app.py

from flask import Flask, render_template, request, jsonify
app = Flask(__name__)


from pymongo import MongoClient
import certifi


ca=certifi.where()


client = MongoClient('mongodb+srv://sparta:test@cluster0.t7edg36.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta


import requests
from bs4 import BeautifulSoup


@app.route('/')
def home():
    return render_template('index.html')


@app.route("/movie", methods=["POST"])
def movie_post():
    url_receive = request.form['url_give']
    comment_receive = request.form['comment_give']
    
    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
    data = requests.get(url_receive,headers=headers)


    soup = BeautifulSoup(data.text, 'html.parser')


    ogtitle= soup.select_one('meta[property="og:title"]')['content']


    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
    data = requests.get(url_receive,headers=headers)


    soup = BeautifulSoup(data.text, 'html.parser')


    ogtitle= soup.select_one('meta[property="og:title"]')['content']
    ogdesc= soup.select_one('meta[property="og:description"]')['content']
    ogimage= soup.select_one('meta[property="og:image"]')['content']


    doc={
        'title':ogtitle,
        'desc':ogdesc,
        'image':ogimage,
        'comment':comment_receive,
    }
    db.movies.insert_one(doc)


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


@app.route("/movie", methods=["GET"])
def movie_get():
    return jsonify({'msg':'GET 연결 완료!'})


if __name__ == '__main__':
    app.run('0.0.0.0', port=5001, debug=True)

index.html


<!doctype html>
<html lang="en">


<head>


    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


    <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>
    <!-- Font Awesome Icon Library -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">


    <title>지원피디아</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Gowun+Dodum&display=swap');


        * {
            font-family: 'Gowun Dodum', sans-serif;
        }


        .mytitle {
            background-color: green;
            color: white;


            height: 250px;


            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;


            background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://image.cine21.com/resize/cine21/article/2013/1210/12_13_07__52a686c300fef[H800-].jpg');
            background-position: center;
            background-size: cover;
        }


        .mytitle>button {
            width: 250px;
            height: 50px;


            background-color: transparent;


            border: 1px solid white;
            border-radius: 50px;


            color: white;


            margin-top: 20px;


        }


        .mytitle>button:hover {
            border: 2px solid white;
        }


        .mycomment {
            color: gray;
        }


        .mycards {
            width: 1200px;
            margin: 20px auto 20px auto;
        }


        .checked {
            color: orange;
        }


        /*  .star-rating {
            width: 205px;
        }


        .star-rating,
        .star-rating span {
            display: inline-block;
            height: 39px;
            overflow: hidden;
            background-image: url('https://lh3.googleusercontent.com/-SCXjTBCBtiLJSleg8MvjZGoOeJdDoggshO_6qr8wUCrKkcGcXyqAjG8NOzjib-A86YZFN_MLk-eqT-QQP4vX_Bns-hYkm3b49GqrwoJ')no-repeat;
        }


        .star-rating span {
            background-position: left bottom;
            line-height: O;
            vertical-align: top;
        }*/
        .mypost {


            width: 500px;
            margin: 20px auto 20px auto;
            padding: 20px 20px 20px 20px;


            box-shadow: 0px 0px 3px 0px gray;
        }


        .mybtn {
            display: flex;
            flex-direction: row;
            align-items: center;
            justify-content: center;


            margin-top: 20px;


        }


        .mybtn>button {
            margin-right: 10px;
        }
    </style>


    <script>
           $(document).ready(function(){
          listing();
        });


        function listing() {
            fetch('/movie').then((res) => res.json()).then((data) => {
            console.log(data)
            alert(data['msg'])
            })
        }


        function posting() {
            let url=$('#url').val()
            let comment=$('#comment').val()


            let formData = new FormData();
            formData.append("url_give", url);
            formData.append("comment_give", comment);


            fetch('/movie', {method : "POST",body : formData}).then((res) => res.json()).then((data) => {
            alert(data['msg'])
            })
        }


        function open_box(){
            $('#post-box').show()
        }
        function close_box(){
            $('#post-box').hide()
        }
    </script>


</head>


<body>
    <div class="mytitle">
        <h1>CinemaScope</h1>
        <div>현재 서울의 날씨 : <span id="temp">20</span>도</div>
        <button onclick="hey()">내 기록장 바로가기</button>
    </div>
    <div class="mypost">
        <div class="form-floating mb-3">
            <input type="email" class="form-control" id="floatingInput" placeholder="name@example.com">
            <label for="floatingInput">영화 URL</label>
        </div>


        <div class="input-group mb-3">
            <label class="input-group-text" for="inputGroupSelect01">별점</label>
            <select class="form-select" id="inputGroupSelect01">
                <option selected>--선택하기--</option>
                <option value="1">
                    <!-- <span class="fa fa-star checked"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span> -->
                    ⭐️
                </option>


                </span>
                </option>
                <option value="2">
                    <!-- <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span> -->
                    ⭐️⭐️
                </option>


                </option>
                <option value="3">
                    <!-- <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star"></span>
                    <span class="fa fa-star"></span> -->
                    ⭐️⭐️⭐️
                </option>
                </option>
                <option value="4">
                   <!-- <p> <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star checked"></span>
                    <span class="fa fa-star"></span></p> -->
                    ⭐️⭐️⭐️⭐️
                </option>
                </option>
                <option value="5">
                    ⭐️⭐️⭐️⭐️⭐️
                </option>
            </select>
        </div>


        <div class="form-floating">
            <textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea"></textarea>
            <label for="floatingTextarea">코멘트</label>
        </div>
        <div class="mybtn">
            <button type="button" class="btn btn-dark">기록하기</button>
            <button type="button" class="btn btn-outline-dark">닫기</button>
        </div>
    </div>
    <div class="mycards">
        <div id="cards" class="row row-cols-1 row-cols-md-4 g-4">


            <div class="col">
                <div class="card h-100">
                    <img src="https://upload.wikimedia.org/wikipedia/ko/thumb/a/a3/그녀_포스터.jpg/220px-그녀_포스터.jpg"
                        class="card-img-top" alt="...">
                    <div class="card-body">
                        <h5 class="card-title">그녀</h5>
                        <p class="card-text">제일 사랑하는 영화</p>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>


                        <!-- <div class="wrap-star">
                            <div class='star-rating'>
                                <span style="width:30%">
                                </span>
                            </div>
                        </div> -->
                        <p class="mycomment"></p>


                    </div>
                </div>
            </div>
            <div class="col">
                <div class="card h-100">
                    <img src="https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDOGjE%2FbtriiBwCHsS%2F02lyE6MLajzmT0aYZrBWlK%2Fimg.jpg"
                        class="card-img-top" alt="...">
                    <div class="card-body">
                        <h5 class="card-title">폭풍속으로</h5>
                        <p class="card-text">서핑 좋아하면 꼭</p>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star"></span>


                        <p class="mycomment"></p>
                    </div>
                </div>
            </div>


            <div class="col">
                <div class="card h-100">
                    <img src="http://t1.daumcdn.net/cfile/200D8E014BCD0ABB16" class="card-img-top" alt="...">
                    <div class="card-body">
                        <h5 class="card-title">경찰서를 털어라</h5>
                        <p class="card-text">가볍게 보기 좋은 코미디 장르</p>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star"></span>
                        <span class="fa fa-star"></span>
                        <p class="mycomment"></p>
                    </div>
                </div>
            </div>


            <div class="col">
                <div class="card h-100">
                    <img src="https://upload.wikimedia.org/wikipedia/ko/6/6f/트루먼_쇼_포스터.jpg" class="card-img-top"
                        alt="...">
                    <div class="card-body">
                        <h5 class="card-title">트루먼쇼</h5>
                        <p class="card-text">"Good morning, and in case I don't see ya, good afternoon, good evening,
                            and good night."</p>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <span class="fa fa-star checked"></span>
                        <p class="mycomment"></p>
                    </div>
                </div>
            </div>
        </div>
    </div>





    </div>
</body>


;et star_image


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