- 질문
doc = {
'title': title,
'image':image,
'desc' :desc,
'star':star_receive,
'comment':comment_receive
}
db.movies.insert_one(doc)
여기서 url은 왜 doc에 저장 안해요?
(전체 코드)
@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': '저장 완료!'})
- 답변
홍유리님 이은 문의 감사드립니다 :)
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')
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']
이렇게 추출되는 것으로 이 title, image, desc를 저장하는 것이 목적이기 때문에,
굳이 url을 저장할 필요가 없었던 것입니다.
url은 그냥 입력받는 중간 수단이고,
이후 url을 통해 얻은 title, image, desc가 저장 대상이기 떄문에(영화 정보)
굳이 저장하지 않았으나,
유리님이 희망하신다면 저장하셔도 상관은 없습니다.
app.py html에서는 이제 브라우저에서 입력을 받아서 해당 url변수를 request.form 이라는 부분으로 추출하여 파이썬에서 사용하게 되어서 필요가 없게되고 이 변수는 url_receive 입니다 :)
위에 코드는 단순히 html없이 파이썬 코드만 동작해야하다 보니 url을 먼저 변수에 저장한 경우이니
url_receive 대신 이고
여기서는 받은 정보가 아니니 단순히 url이라는 변수로 저장해서 사용하였을 뿐
목적은 title, image, desc라는 점은 변하지는 않습니다.
=================================
위에 주소에서 데이터를 가져왔다는 것을 알 수는 없습니다만,
저희는 가져온 데이터를 db에 저장해놓기 떄문에 (app.py에서) 굳이 url또한 저장할 필요가 없게 되는 것 입니다 :)
'코딩 에러 및 질문' 카테고리의 다른 글
bucket 출처 (0) | 2022.10.20 |
---|---|
무슨 뜻? (0) | 2022.10.20 |
질문 flask - jsonify (0) | 2022.10.19 |
질문 Ajax - post (0) | 2022.10.19 |
'name' 'address' 'size'는 어디서 가져온 거예요? (0) | 2022.10.18 |