4주차 코딩 개발 일지(4-1 ~ 4-5)

영현·2022년 3월 20일
0

☑️ Flask : 기초

  • Flask 프레임워크: 서버를 구동시켜주는 편한 코드 모음. 서버를 구동하려면 필요한 복잡한 일들을 쉽게 가져다 쓸 수 있다.

    ✔︎ 프레임워크는 남이 짜둔 어떤 규칙이나 틀 안에서 내가 코딩을 자유롭게 하니까 편한 것.
    ✔︎ 라이브러리는 내가 내 마음대로 짜는데 남이 만들어 놓은 것을 중간에 자유롭게 갖다 쓰니까 편한 것.
    ✔︎ 통상적으로 프레임워크는 하나의 프레임워크 안에서 내가 짜게 되고 그 안에서 라이브러리는 얼마든지 갖다 쓸 수 있다.

  • localhost :5000 → 내가 만든 서버에 5000번 문으로 접속하겠다.

✦ Flask 시작 코드

from flask import Flask
app = Flask(__name__)

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

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

✦ URL 나눠보기

from flask import Flask
app = Flask(__name__)

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

@app.route('/mypage')
def mypage():  
   return 'This is My Page!'

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

☑️ Flask : HTML파일 주기

  • 항상 Flask 서버를 만들 때,
    프로젝트 폴더 안에,
    ㄴstatic 폴더 (이미지, css파일을 넣어둔다.)
    ㄴtemplates 폴더 (html파일을 넣어둔다.)
    ㄴapp.py 파일
    ✔︎ 이렇게 세 개를 만들어두고 시작

⭐️ venv는 실제로는 보이지만, 안 보인다 라고 생각하기 ⭐️

  • templates 폴더의 역할
    → HTML 파일을 담아두고, 불러오는 역할을 한다.
from flask import Flask, render_template
app = Flask(__name__)

→ URL 별로 함수명이 같거나,
→ route('/') 등의 주소가 같으면 안됩니다.

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

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

☑️ Flask : API 만들기

  • API : 은행이 고객을 받기 위해서 만들어 놓은 창구처럼 서버 클라언트 요청을 받기 위해서 만들어 놓는 창구

  • API 종류 (GET, POST)
    ✽ GET → 통상적으로! 데이터 조회(Read)를 요청할 때
    예) 영화 목록 조회
    → 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    → 예: google.com?q=북극곰
    ✽ POST → 통상적으로! 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청 할 때
    예) 회원가입, 회원탈퇴, 비밀번호 수정
    → 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

  • GET 요청 API 코드
    -예를들면 은행에서 창구를 만들어 놓는 것
@app.route('/test', methods=['GET'])
def test_get():
   title_receive = request.args.get('title_give')  
   → 'title_give'로 요청온 값을 찍어봐라
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 GET!'})
  • GET 요청 확인 Ajax코드 (페이지>검사>콘솔창)
    -예를들면 고객같은 것
$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })
  • POST 요청 API 코드
@app.route('/test', methods=['POST'])
def test_post():
   title_receive = request.form['title_give']
   print(title_receive)
   return jsonify({'result':'success', 'msg': '이 요청은 POST!'})
  • POST 요청 확인 Ajax 코드
$.ajax({
    type: "POST",
    url: "/test",
    data: { title_give:'봄날은간다' },
    success: function(response){
       console.log(response)
    }
  })

나는 안 맞는거 같다....뭔 소린지 머리에 주입도 안 된다. . 괜히 도전했다. 아니 아예 응용조차 안되는걸? 화딱지가 나서 못 해먹겠다

0개의 댓글