Flask 시작하기 -서버만들기

송수용·2022년 4월 15일
0

웹 개발 종합반

목록 보기
15/24

Flask 시작하기

Flask 패키지 설치!
파일 > 설정 > 인터프리터

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
   return 'This is Home!'
   
@app.route('/mypage')
def mypage():
  return 'mypage'

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

Flask 규칙

Flask 서버를 만들 때, 항상,
프로젝트 폴더 안에,
ㄴstatic 폴더 (이미지, css파일을 넣어둡니다)
ㄴtemplates 폴더 (html파일을 넣어둡니다)
ㄴapp.py 파일
이렇게 세 개를 만들어두고 시작해야한다. 이제 각 폴더의 역할이 있다.

templates 폴더의 역할은
HTML 파일을 담아두고, 불러오는 역할을 한다.

templates 안의 index.html 와 연결하기 위해서는 위와 같이 render+template을 import 하여 return render_template('index.html')로 사용한다.

API 만들기! (심화 정리는 추후에)

  • GET, POST 방식
    여러 방식(링크)이 존재하지만 우리는 가장 많이 쓰이는 GET, POST 방식에 대해 다룬다.
  • GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회
    → 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    → 예: google.com?q=북극곰
  • POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정
    → 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달 서버를 만든다는 것은 Flask 등 을 이용하여 GET, POST로 프론트인 HTML과 통신하게 하는 것. GET,POST를 요청하기 위해 Ajax를 사용하게되는데 Ajax를 쓰려면 jQuery import가 필요하다.
    function hey() {
               $.ajax({
                   type: "GET",
                   url: "/test?title_give=봄날은간다",
                   data: {},
                   success: function (response) {
                       console.log(response)
                   }
               })
           }
    function hey() 를 넣어 onclick 이벤트로 연결하고, Ajax코드를 작성했다.
    이후,
    @app.route('/test', methods=['GET'])
    def test_get():
     title_receive = request.args.get('title_give')
     print(title_receive)
     return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
    GET요청 API코드를 만들어 통신할 수 있도록 한다. 이때, request 와 jsonify를 import 해준다. POST도 GET과 같은 방식이다.
    GET요청보다는 POST방식을 더 많이 쓰일테니 POST를 유의깊게 보는 것이 좋다.
    $.ajax({
             type: "POST",
             url: "/test",
             data: { title_give:'봄날은간다' },
             success: function(response){
             console.log(response)
            }
         })
    @app.route('/test', methods=['POST'])
    def test_post():
     title_receive = request.form['title_give']
     print(title_receive)
     return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
    위에서 title부터 아랫줄들이 줄정렬이 안되면 에러가 발생하는데,
    이는 python의 줄 정렬이 엄격하기 때문에 그렇다.!
    몇몇 수강생 분들이 질문했던 내용이기도 하다.

    TIL

    GET POST 요청과 API 통신을 통해 프론트와 백엔드의 통신 구조를 이해하고,
    더 깊게 이해하기 위해서 토이프로젝트를 진행해보자!
    다음 포스팅에서!
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글