210926 개발일지

Moonsun Kim·2021년 9월 26일
1

1. Flask시작하기 - 서버만들기

1-1) Flask 패키지 설치하기

✅ 윈도우

좌상단File → setting → Python interpreter → Python interpreter 화면에서 + 버튼 누르기 → Flask 검색 → Install package 클릭


1-2) Flask 기초 : 기본 실행

  • Flask 프레임워크: 서버를 구동시켜주는 편한 코드 모음.
    (서버를 구동하려면 필요한 복잡한 일들을 쉽게 가져다 쓸 수 있다.)
  • app.py 파일을 만들어 아래 코드를 붙여넣는다.
    (통상적으로 flask 서버를 돌리는 파일은 app.py라고 이름 짓는다!)

✅ 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)

2. Flask시작하기 - HTML 파일 주기

2-1) Flask 기초 : 기본 폴더구조

  • Flask 서버를 만들 때는 항!상!
    프로젝트 폴더 안에, 아래 세 개를 만들고 시작하기!!!

    static 폴더 : 이미지, css파일을 넣어둔다.
    templates 폴더 : html파일을 넣어둔다.
    app.py 파일

  • venv은 실제로 보이지만, 안 보인다고 생각하기


2-2) Flask 기초 : HTML 파일 불러오기

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

(1) 간단한 index.html 파일을 templates 안에 만들기

✅ index.html 예제코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <title>Document</title>
</head>
<body>
    <h1>서버를 만들었다!</h1>
</body>
</html>

(2) html 파일 불러오기

flask 내장함수 render_template 이용하기!!!

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)

3. Flask시작하기 - API 만들기

3-1) GET, POST 방식

✅ GET

  • 데이터 조회(Read)를 요청할 때
    EX) 영화 목록 조회
  • 데이터 전달 : URL 뒤에 물음표를 붙여 key=value로 전달
    EX) 예: google.com?q=북극곰

✅ POST

  • 데이터 생성(Create), 변경(Update), 삭제(Delete) 요청할 때
    EX) 회원가입, 회원탈퇴, 비밀번호 수정
  • 데이터 전달 : 바로 보이지 않는 HTML body에 key:value 형태로 전달

3-2) GET, POST 요청에서 클라이언트의 데이터를 얻는 방법

  • 예를 들어, 클라이언트에서 서버에 title_give란 키 값으로 데이터를 들고왔다고 해보자.
  • 받은 값을 개발자가 볼 수 있게 print로 찍어볼 수 있게 했다.

✅ 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': '이 요청은 GET!'})

✅ GET 요청 확인 Ajax코드

$.ajax({
    type: "GET",
    url: "/test?title_give=봄날은간다",
    data: {},
    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개의 댓글