오늘 목표
- 삭제 파트 오류 없이 완성
- 더미데이터 url 한 곳으로 통일 or watcha + daum 논의해서 입력하기 (네이버 og:image 불가)
- 스파르타피디아 완성
- 프로그래머스 코딩테스트 입문 : 두 수의 나눗셈
오늘 한 것
- 삭제 파트 오류 없이 완성
- 더미데이터 테스트 입력용 코드 작성
- 원래 정한대로 더미데이터 10개 입력 (네이버, 다음, 왓챠피디아)
- 더미데이터_2 작성 (다음만)
- 스파르타피디아 완성
- 프로그래머스 코딩테스트 입문 : 두 수의 나눗셈
0. 미니 팀 프로젝트 [무비스코어] 진행 상황
0-1. 삭제 파트
문제
return 1 을 하였으나 Type Error 가 발생함.
TypeError: The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a int. |
시도
jsonify
참고자료 : https://growingsaja.tistory.com/521
해결
jsonify(result) 또는 str(result) 로 해결 가능하다고 하여 jsonify 적용함.
@app.route("/del", methods=["POST"])
def movie_del():
allmovie = request.get_json()
reid = allmovie['id']
repw = allmovie['password']
db.movies.delete_one({'id':reid,'password':repw})
return jsonify(1)
알게된 것
필요한 형식대로 리턴하자.
우리의 경우에는 jsonify 로 리턴.
jsonify(result)
0-2. 더미데이터
문제
og:title, og:image, og:description 으로
더미데이터 입력 시 각 사이트별 규격이 다르고 통일감이 없음.
- 네이버: og:image 에 영화사진이 없음.
- 다음 : og:description 이 불러와 지지 않음.
- 왓챠피디아 : 제목 뒤에 -왓챠피디아 > ogtitle[0:-8] 문자열 슬라이싱으로 수정 가능
더미데이터 테스트 입력용 코드
다음으로 할 경우 이와 비슷하게 가나
watchapedia 에서 파싱할 경우
title_receive = ogtitle[0:-8] 을 통해 ' - 왓챠피디아' 라는 문자열 떼기
import requests
from bs4 import BeautifulSoup
uuid1 = str(uuid.uuid1())
@app.route('/save', methods=["POST"])
def savemovie():
url_receive = request.get_json()['url']
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']
ogimage = soup.select_one('meta[property="og:image"]')['content']
ogdesc = soup.select_one('meta[property="og:description"]')['content']
nickname_receive = request.get_json()['nickname']
password_receive = request.get_json()['password']
starPoint_receive = request.get_json()['starPoint']
comment_receive = request.get_json()['comment']
title_receive = ogtitle
desc_receive = ogdesc[0:300]
imageurl_receive = ogimage
id_receive = uuid1
doc = {
'nickname' : nickname_receive,
'password' : password_receive,
'url' : url_receive,
'starpoint' : starPoint_receive,
'comment' : comment_receive,
'title' : title_receive,
'desc' : desc_receive,
'imageurl' : imageurl_receive,
'id' : id_receive
}
db.movies.insert_one(doc)
return jsonify(1)
시도
조원들과 상의 결과 다음 영화만 파싱하기로 하였다.
해결
다음 영화만 파싱.
알게된 점
함께하면 오류도 즐겁다.
0-3. 글자 겹침
문제
입력된 더미데이터들의 글자가 겹쳐서 보임
시도
main.js 의 가져오는 html 의
<div style=“position:absoulute;bottom:10px; width:100%;">
부분을 삭제
해결
삭제 후 해결 완료
📌 CSS 관련된 부분은 조원께서 다시 손 봐 주시기로 하였다.
알게 된 것
position:absolute 는 div 의 위치를 조정한다.
소감
새로운 것들을 많이 알게 되는 것 같다.
1. javascript : 스파르타피디아
자주 복습하자! 자꾸 잊어버린다....
2. javascript : ~~
알게 된 점
double tilde ~~
Math.floor() 와 같은 기능을 한다.
단, Math.floor() parseInt 보다 빠르다.
정리
필요한 형식대로 리턴하자.
우리의 경우에는 jsonify 로 리턴.
jsonify(result)
position:absolute 는 div 의 위치를 조정한다.
double tilde ~~
Math.floor() 와 같은 기능을 한다.
단, Math.floor() parseInt 보다 빠르다.
소감
조원들에게 물어보면 안 되는 일이 없다. 다들 멋진 개발자 같다!
'verdantjuly > Today I Learned' 카테고리의 다른 글
TIL 20230512 (1) | 2023.05.12 |
---|---|
TIL 20230511 (1) | 2023.05.11 |
TIL 20230509 (1) | 2023.05.09 |
TIL 20230508 (3) | 2023.05.08 |
TIL 20230506 (1) | 2023.05.06 |