Flask로 개인 PC에 서버를 만들어 디비에 저장도하고 요청에 응답하는 전체적인 흐름도

Tommy·2022년 5월 4일
0

개인 PC 서버만들기

개임 PC에 서버를 만드는 방법은 flask 파이썬 라이브러리를 설치하면 만들어집니다.

고정적인 폴더 구조가 있는데, 한 글자만 틀려도 서버 실행이 되지 않습니다.

추가로 몽고디비를 사용하려면 pymongo, dnspython, certifi 라이브러리도 설치해야합니다.

디비에 성공을 알리는 jsonify 라이브러리도 설치합니다

프로젝트 폴더 안에

  1. static 폴더 - 이미지, CSS 파일을 넣어두는 폴더
  2. templates 폴더 - html 파일을 넣어두는 폴더
  3. app.py 파일 - 서버를 실행하는 파일

각각의 폴더에서 API를 가지고 서로 데이터를 주고 받습니다.
GET, POST 방식을 가지고 요청하고 데이터도 전달합니다.

전체적인 흐름도

데이터 전송 세팅을 할때는 서버쪽 먼저 만든 후에 클라이언트 쪽을 만듭니다.

  1. from client 쪽:

1) 원하는 데이터를 콕 찍어서 POST를(templates>html파일) 통해 데이터_give를 서버에 보냅니다

2) POST를 통해 받은 데이터_give를 데이터_receive로 받아서 디비에 Doc 형태로 몽고디비에 저장(app.py)합니다

3) 몽고디비에 저장이 잘 되었으면 Client쪽으로 성공의 메세지를 보냅니다

  • return jsonify({'msg':'디비저장완료'})
  1. from server 쪽:

1) 디비에 존재하는 데이터 일부 혹은 전체의 데이터를 추출하여 GET 방식을 통해 데이터를 client쪽으로 보냅니다.

추출방식은,
comment_list = list(db.homework.find({}, {,_id': False}))
return jsonify({'comments':comment_list})

comment_list라는 변수로 디비의 데이터를 받아와서 comments라는 변수로 client로 보냅니다.

2) 서버(app.py>get)에서 명령하여 몽고디비로부터 축출된 데이터를 받아와서(response['comment']) 여기에 담기 정보를 각 기능에 맞게 데이터를 변수로 설정하고 temp_html를 만들고 그 안에 변수가 찍히게 하여 붙여 넣을 자리에 temp_html을 append 해줍니다

필요한 기본 코드

  1. Jquery import

<scrip트 src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></scrip트>

2.POST 요청 API 코드

@app.route)'/test', methods=['POST']
def test_post():
title_receive = request.form['title_give']
print(title_receive)
return jsonify({'result':'seccess', 'msg':'요청받기성공'})

  1. POST 요청 확인 Ajax코드

$.ajax({
type: "POST",
url: "/test",
data: {title_give:'데이터내용'},
success: function(response){
console.log(response)
}
})

  1. GET 요청 API코드

@app.route('/test', methods=['GET'])
def test_get():
title_receive = request.args.get('title_give')
print(title_receive)
return jsonify({'result':'success', 'msg':'요청 성공!'})

  1. GET 요청확인 Ajax 코드

$.ajax({
type: "GET",
url: "/test?title_give=데이터내용",
data: {},
success: function(response){
console.log(response)
}
})

profile
인간미가 느껴지는 개발자가 되고있는 드리머

0개의 댓글