본문 바로가기
기술 단어장/🎸

[프로젝트 학습일지] 22.07.07- vscode의 Flask 환경 설정 및 서버 구동

by MFDO 2022. 7. 11.

환경구성


 

 

1. Vscode Extention 설치

 - vscode에서 위의 두 Extention을 설치합니다.

 - Python : flask를 파이썬으로 작성하기 위함

 - flask-snippets : flask를 쓰기 위함 

 



2. Flask 구조이해


 - Flask는 다음과 같은 구조를 가지게 됩니다.
 - static : css,js 등의 파일

 - templates : html 파일
 - app.py : 서버 구동을 위한 코드 작성

 

 


3. 실행을 위한 launch.json 설정


 - 왼쪽 디버그 버튼 선택
 - 실행 및 디버그 버튼이 아닌 launch.json파일 만들기를 선택합니다.

 

 

 

4. 디버그 구성


 - 사진에 표기된 것 처럼 Flask 선택
 - 여기까지 하면 환경 구성은 끝!

 

 

 

 

 

 

서버구동


 

 

 

1. 기본적인 서버 구동

from flask import Flask

# Flask 객체 인스턴트 생성
app = Flask(__name__)

# 접속 URL 설정
@app.route('/')
def index():
    return 'Hello, Home!'
    
if __name__ == '__main__':
    # 코드 수정 시 자동 반영
    app.run(debug=True)

 - app.py에서 해당 코드를 작성하고 실행한다면 127.0.0.1:5000의 주소로 해당 페이지가 보일 것이다.

 

 

 

 

2. 페이지 라우팅

# 기본 접속 페이지
@app.route('/')
def index():
    return 'Hello, World!'

# 127.0.0.1:5000/home 접속
@app.route('/home')
def home():
    return 'Hello, Home!'

# 127.0.0.1:5000/user 접속
@app.route('/user')
def user():
    return 'Hello, User!'

 - app.route()를 이용하면 각 페이지에 접속했을 때 어떤 결과를 도출할 지 설정 할 수 있다. 

 

 

 

 

 

3. html 파일 출력하기

from flask import Flask, render_template

# Flask 객체 인스턴트 생성
app = Flask(__name__)

# 접속 URL 설정
@app.route('/')
def index():
    return render_template('index.html')
    
if __name__ == '__main__':
    # 코드 수정 시 자동 반영
    app.run(debug=True)

 - reder_template를 이용하면 html 파일을 불러올 수 있다.

 - reder_template를 import 해주고, 불러올 html을 위의 코드형식처럼 반환한다.

 - 이 때, 환경구성에서 말했듯 html 파일은 templates 폴더 내부에 있어야 한다.

  > flask의 html파일 검색 경로는 templates 폴더가 기본이다.

 

 

4. API 서버로 이용하기

# request를 이용한 전송을 사용함
# json type 변환을 위한 jsonify 이용
from flask import Flask, request, jsonify

@app.route('/echo_call/<param>') #get echo api
def get_echo_call(param):
    params = request.get_json()
    # 받아온 값 출력
    print(params['param'])
    return jsonify({"param": param})

@app.route('/create', methods=['POST'])
def create():
    # 읽어 들인 내용이 json 형식이 맞는가?
    print(request.is_json)
    params = request.get_json()
    # json 내용을 읽는 과정
    print(params['user_id'])
    print(params['user_name'])
    return 'ok'

 - 위는 get/post 방식으로 각각 메시지를 받는 방법이다.

 - 주요 변경 코드만 작성했다.

 

 - get : 주소창에 데이터를 전달하는 방식으로 전송데이터가 공개된다.

 - post : 데이터를 공개되지 않은 방식으로 전송되며 많은 데이터 전송을 위해 사용된다.

 

 

4-1. 데이터 전송

 - postman을 이용해 데이터를 전송했다.

 - 크롬의 Talend API Tester를 이용해 보내도 된다.

 - get 전송 : get으로 설정 후 http://127.0.0.1:5000/설정한주소/보낼데이터 

 - post 전송 : post로 설정 후 http://127.0.0.1:5000/설정한주소 Body-raw-json으로 설정 후 전송

댓글