모두의책리뷰 POST 연습(리뷰 저장)

BBOrong_22·2022년 4월 19일

스파르타 원정

목록 보기
42/52

File>New project>bookreview생성>app.py/static/templates>index.html
File setting>flask/pymongo

코드스니펫에서 app.py뼈대와 index.html 뼈대 복붙
app.py에서 ▶run>브라우저에 localhost:5000 창 띄우기

📢API 만들고 사용하기

제목, 저자, 리뷰

💿정보 저장하기(Create → POST)📀

1️⃣ 클라이언트와 서버 확인하기
2️⃣ 서버부터 만들기
3️⃣ 클라이언트 만들기
4️⃣ 완성 확인하기

1️⃣✔ 클라이언트와 서버 확인하기


👩‍💼app.py 창구에서
@app.route('/review', methods=['POST'])
/review에 post타입이다.
sample_give라는 이름으로 데이터를 받고 있다.
주고받는 형태가 다 맞아떨어지면
msg를 '이 요청은 post!'라고 내려주고 있다.

🙋‍♂️index.html 클라이언트에서
ajax콜이 makereview라는 함수에서 불리고 있다.
post type에 ulr은 /review 로 요청을 한다.
sample_give 형태로 샘플데이터라는 데이터를 가져간다고 나온다.
요청이 됐고 가져가는 데이터도 잘 받았으면
response로 '이 요청은 post!'라는 msg를 받는다.
그것이 alert으로 되있고 리로드되면 뜬다.
makereview함수가 어디에 붙어있냐면

리뷰작성하기 버튼에 붙어있다.
👉브라우저에서 리뷰작성하기 버튼을 누르면 Ajax콜이 동작한다.
alert으로 '이 요청은 post!'라고 뜬다.연결이 잘 됐다

2️⃣✔ 서버부터 만들기

👨‍💼서버쪽 일 (창구 일)
클라이언트(고객에서)
제목,저자,리뷰 데이터가 들어오면 그것을 받아다가 DB에 저장해준다.

데이터 받을 준비를 한다.
title_receive = request.form['title_give']
author_receive = request.form['author_give']
review_receive = request.form['review_give']

(print(sample_receive))지우기

이제 DB 저장을 해야하는데
폴더>pythonprac>dbprac을 드래그해서 파이참에 끌어다 놓기
저장 코드 참고해서 만들기

딕셔너리 먼저 만들어주기

doc = {
        'title': title_receive,
        'author': author_receive,
        'review': review_receive
    }

bookreview에 저장하기

db.bookreview.insert_one(doc)

데이터를 받고 저장이 다 완료되면 메세지로
return jsonify({'msg': '저장 완료!'})

3️⃣✔ 클라이언트 만들기

🙋‍♂️클라이언트 쪽 일 (고객 일)
제목,저자,리뷰를 가져와서 보내주면 된다.
JQuery로 값을 가져와야한다.

function makeReview() {

let 변수 = $('#각 inputbox id값').val()

	let title = $('#title').val()
	let author = $('#author').val()
	let review = $('#bookReview').val()

이걸 Ajax에 실어서 보내줘야 한다.
서버에서 받기로 한 이름 title_give
data: {sample_give:'샘플데이터'}이거를
👉data: {title_give:title,author_give:author,review_give:review}

4️⃣✔ 완성 확인하기

브라우저에서
제목,저자,리뷰를 작성하고 리뷰작성하기를 누른다.
alert '저장완료!'를 확인한 뒤
robo3T로 가서 확인을 한다.

profile
아 스파르타 복습해야한다..

0개의 댓글