환경구성
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으로 설정 후 전송
'기술 단어장 > 🎸' 카테고리의 다른 글
[Rust] Rust 기초 - 요약지 (0) | 2023.03.28 |
---|---|
JSON-LD에 대해 둘러본 내용... (0) | 2022.10.28 |
[프로젝트 학습일지] 22.07.01 - 온/습도 센서를 연결해보자! (0) | 2022.07.01 |
[기술단어장] 디스크 파티션 분할 초기화 (0) | 2022.06.12 |
[React] 컴포넌트 사용해보기 (0) | 2022.04.27 |
댓글