파이썬을 이용해 서버 만들기

이단비·2021년 7월 30일
0

4주차 수업은 서버와 클라이언트에 대한 이해!

클라이언트가 쉽게 말해 내가 보는 또는 사용하는 APP이라면,
서버는 웹페이지 또는 APP이 요청하는 기능을 수행하는 컴퓨터이다.

이번 강의에서는 REST API의 가장 기본적인 소통 방식 GET, POST, PUT, DELET중에 가장 기본적인 GET과 POST에 관해 배웠다.

REST API 란?
HTTP로 통신 할 때 가장 적합한 소통 방식! 즉, 서버와 클라이언트가 소통하기 위한 규칙이다.

GET은 읽기 / POST는 생성 / PUT은 수정 / DELET는 삭제
(이번 강의에서는 생성하고, 서버에 있는 데이터를 읽어오는 POST와 GET을 배웠다.)

<과제를 통한 복습>

먼저 라이브러리를 사용하기 위해 Python Interpreter을 통해 flask와 pymongo를 다운 받았다.

서버를 만들고, DB를 쌓기 위한 준비!

from flask import Flask, render_template, jsonify, request

app = Flask(__name__)

from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client.dbhomework

Robo3T로 DB를 확인하면서 진행했다.

다음은 HTML로 만든 클라이언트페이지를 서버와 붙여주는 작업

@app.route('/')
def homework():
    return render_template('index.html')

여기에 2주차때 만들었던 양초 판매 웹페이지(indsx.html)를 연결했다.

그리고, 먼저 post API를 이용해서 클라에서 들어오는 내용을 DB에 저장!

@app.route('/order', methods=['POST'])
def save_order():
    name_receive = request.form['name_give']
    quantity_receive = request.form['quantity_give']
    address_receive = request.form['address_give']
    hp_receive = request.form['hp_give']

    doc = {
        'name': name_receive,
        'quantity': quantity_receive,
        'address': address_receive,
        'hp': hp_receive,
    }
    db.oders.insert_one(doc)

    return jsonify({'msg': '주문완료!'})

POST methods를 이용해 생성했다.
내용은 아래 이미지에 있는 정보들을 받아서 서버에 저장하는 내용이다.

서버코드에 있는 변수와 html코드에 있는 변수를 잘 맞춰주고,
함수를 언제 실행시킬지 적당한 위치를 찾아 넣고,
db를 어떤이름으로 어떻게 쌓을지 고민하는 부분이 어려웠다.

다음으로 get을 이용해서 db에 저장된 내용을 다시 클라에 보여주는 작업!

# 주문 목록보기(Read) API
@app.route('/order', methods=['GET'])
def listing():
    orders = list(db.oders.find({},{'_id':False}))
    return jsonify({'all_orders':orders})

if __name__ == '__main__':
    app.run('0.0.0.0', port=5000, debug=True)

이렇게 db에서 불러와 html을 통해 붙여주면 클라에 표시가 된다.

이때도 db 폴더명 오타로 한참 해맸다 ㅠㅠ..

4주차까지 해서 주문을 입력하면 주문내역이 나타나는 웹페이지까지 완성할 수 있었다.
서버의 개념은 아직도 헷갈리지만.. 복습을 통해 완벽히 이해하는 날이 오기를 바랄뿐이다 ㅠㅠ

profile
왕초보 탈출기 입니다!! :)

0개의 댓글