
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
4주차의 영화 기록하기 자료에 닫기 버튼을 통해 제거 기능을 추가하려고 합니다.
5주차 강의 내용에서는 버튼을 통해서 제거를 할려면 정의할 필요가 있다고 했습니다.
그래서 버튼 안에 이미 정의되어 있는 title값을 넣고 post기능을 사용하면, 버튼을 통해서 해당 title을 가진 데이터를 삭제할 수 있지 않을까? 라는 생각에 시도 했는데, 정상적으로 작동 되지 않아서 질문드립니다.
(num값과 len()기능을 통해서 버튼을 정의하면 서버에 있는 데이터를 제거할 경우, 번호가 같은 (5개가 있는데, 4번째를 지우고 새로 생성을 하면 1+len() 값은 5니깐 , num : 5인 파일이 2개 될까봐 차라리 영화의 제목으로 버튼을 정의한다면 겹치지 않을까 라는 생각을 했습니다.)


html 쪽은 위의 두 부분입니다.

위 사진은 app.py 입니다.
혹시 onclick="remove_movie(${title})" 부분에서 () 안의 부분은 정수값만 들어갈 수 있나요?


remove _movie가 정의되지 않았다고 하는데, 이게 다른 이유가 있나요?
작성한 코드 및 에러 메세지
app.py 전체코드
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.vfi0tng.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
@app.route('/')
def home():
return render_template('index.html')
@app.route("/movie", methods=["POST"])
def movie_post():
url_receive = request.form['url_give']
star_receive = request.form['star_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')
title = soup.select_one('meta[property="og:title"]')['content']
image = soup.select_one('meta[property="og:image"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
doc = {
'title': title,
'image': image,
'desc': desc,
'star':star_receive,
'comment':comment_receive
}
db.movies.insert_one(doc)
return jsonify({'msg': '저장 완료!'})
@app.route("/movie", methods=["GET"])
def movie_get():
movie_list = list(db.movies.find({}, {'_id': False}))
return jsonify({'movies': movie_list})
@app.route("/movie/title", methods=["POST"])
def remove_movie():
title_receive = request.form['title_give']
db.bucket.delete_one({'title': title_receive})
return jsonify({'msg': '제거 완료!'})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
html 전체코드
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
import requests
from bs4 import BeautifulSoup
from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@cluster0.vfi0tng.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
@app.route('/')
def home():
return render_template('index.html')
@app.route("/movie", methods=["POST"])
def movie_post():
url_receive = request.form['url_give']
star_receive = request.form['star_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')
title = soup.select_one('meta[property="og:title"]')['content']
image = soup.select_one('meta[property="og:image"]')['content']
desc = soup.select_one('meta[property="og:description"]')['content']
doc = {
'title': title,
'image': image,
'desc': desc,
'star':star_receive,
'comment':comment_receive
}
db.movies.insert_one(doc)
return jsonify({'msg': '저장 완료!'})
@app.route("/movie", methods=["GET"])
def movie_get():
movie_list = list(db.movies.find({}, {'_id': False}))
return jsonify({'movies': movie_list})
@app.route("/movie/title", methods=["POST"])
def remove_movie():
title_receive = request.form['title_give']
db.bucket.delete_one({'title': title_receive})
return jsonify({'msg': '제거 완료!'})
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
