TIL

220511 TIL

Vince_rf 2022. 5. 15. 22:16

# GET을 해놨더니 POST가 문제다.
어제 한참을 헤매다가 아침에 일어나서 다시 콘솔창을 봤더니 또 알 수 없는
500에러인가가 계속 나온다. 앗 그럼 혹시 파이참에 오류가 뜨지 않을까?
하고 가보니 데이터를 보내주는 html 파일에서 ajax key에러가 떴다고한다.

werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'url_give'

그래서 살펴봤더니 input 태그들에 id값이 안 매겨져있었다.
이걸 못 볼정도면 어제는 정말로 피곤했던듯.

# POST 관련해서 역시

@app.route('/posting')
def posting_post():
   return render_template('posting.html')

이 코드를 먼저 넣어주고

@app.route('/posting/posts', methods=['POST'])
def posting():
    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 = {
        "comment": comment_receive,
        "star": star_receive,
        "title":title,
        "image":image,
        "desc":desc



    }
    db.moviepost.insert_one(doc)
    return jsonify({'msg':'등록 완료!'})

/posting/post 처럼 앞에껀 html이 들어가고 뒤에껀 API? 가 들어갈 자리? 처럼 만들어줬다.
아직 잘은 모르겠어서 이 개념은 나중에 더 알아봐야겠다.


#진자 문법에 대해서 알아보기 아주 좋은 사이트를 발견했다.
https://velog.io/@passion10377/jinja2%EB%A1%9C-%EB%A0%8C%EB%8D%94%EB%A7%81-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

#상세페이지 구현에는 쿼리스트링과 패스베리어블 이란 것을 쓴다고한다.
정말 태어나서 처음 들어보는 단어들이라 연구가 필요할 것 같다..

'TIL' 카테고리의 다른 글

220514 TIL  (0) 2022.05.15
220513 TIL  (0) 2022.05.15
220512 TIL  (0) 2022.05.15
220510 TIL  (0) 2022.05.15
220509 TIL  (0) 2022.05.15