[Python] Flask를 활용해서 HTTP 요청 및 응답을 처리하는 방법.
2024. 6. 19. 19:45ㆍLanguage/python
728x90
728x90
Flask ?
- Python으로 작성된 경량의 웹 프레임워크.
- 최소한의 코드를 사용하여 기본적인 웹 서버 기능을 구현.
curl ?
- HTTP 및 HTTPS 요청을 수행할 수 있는 CLI 도구.
HTTP 거래 도식.
수행 작업.
- Python 설치.
- Flask 설치.
- Flask Application 코드 작성.
- curl 사용하여 HTTP GET/POST 요청 수행 및 응답 확인.
- HTTP GET/POST 요청에 대한 Flask 로그 확인.
Flask 서버 정보.
$ hostnamectl
…
Operating System: Red Hat Enterprise Linux 8.10 (Ootpa)
CPE OS Name: cpe:/o:redhat:enterprise_linux:8::baseos
Kernel: Linux 4.18.0-425.13.1.el8_7.x86_64
Architecture: x86-64
...
Python 설치.
$ sudo yum install python3
$ python3 --version
Python 3.6.8
Flask 설치.
$ sudo pip3 install Flask
Flask Application 코드 작성.(app.py)
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/url_get', methods=['GET'])
def get_method():
params = request.args
print("GET Request Parameters:", params.to_dict())
return jsonify(get_response_message='GET request received')
@app.route('/url_post', methods=['POST'])
def post_method():
print("Post Request Body:", request.get_data(as_text=True))
return jsonify(post_response_message='POST request received')
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=28888)
Flask Application 실행.
$ python3 app.py
* Serving Flask app 'app' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on all addresses.
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://192.168.115.34:28888/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 126-899-801
curl 사용하여 HTTP GET 요청 수행.
$ curl -X GET http://192.168.115.34:28888/url_get?get=request
HTTP GET 요청을 받았을 때 Flask 로그.
GET Request Parameters: {'get': 'request'}
192.168.115.33 - - [19/Jun/2024 19:21:28] "GET /url_get?get=request HTTP/1.1" 200 -
HTTP GET 요청에 대한 Flask 응답.
{
"get_response_message": "GET request received"
}
curl 사용하여 HTTP POST 요청 수행.
$ curl -X POST -H "Content-Type: application/json" -d "{'post': 'request'}" http://192.168.115.34:28888/url_post
HTTP POST 요청을 받았을 때 Flask 로그.
Post Request Body: {'post': 'request'}
192.168.115.33 - - [19/Jun/2024 19:22:16] "POST /url_post HTTP/1.1" 200 -
HTTP POST 요청에 대한 Flask 응답.
{
"post_response_message": "POST request received"
}
728x90
728x90