
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
영화피디아에 기록하기 버튼을 클릭해도 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
