English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
HTTP 프로토콜은 월드 와이드 웹 데이터 통신의 기본입니다. 이 프로토콜은 지정된 URL에서 다양한 데이터를 검색하는 방법을 정의합니다.
다음 표는 다른 HTTP 메서드를 요약합니다 -
번호 | 메서드 | 설명 |
1 | GET | 데이터를 암호화되지 않은 형태로 서버로 전송합니다. 이는 가장 자주 사용되는 메서드입니다. |
2 | HEAD | GET과 동일하지만, 응답 본문이 없습니다 |
3 | POST | HTML 양식 데이터를 서버로 전송하는 데 사용됩니다. POST 메서드로 수신된 데이터는 서버에서 캐싱되지 않습니다. |
4 | PUT | 목표 자원의 모든 현재 표현을 업로드된 내용으로 대체합니다 |
5 | DELETE | URL에서 주어진 모든 목표 자원의 모든 표현을 제거합니다 |
기본적으로, Flask 라우팅은 GET 요청에 응답합니다. 그러나 route() 장식자에 메서드 매개변수를 제공하여 이 기본 설정을 변경할 수 있습니다.
URL 라우팅에서 POST 메서드를 사용하는 데를 보여주기 위해, 먼저 HTML 양식을 생성하고 POST 메서드를 사용하여 양식 데이터를 URL에 전송합니다.
다음 스크립트를 파일에 저장하세요: login.html
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Flask HTTP 요청 메서드 처리</title> </head> <body> <form action="http://localhost:5000/login" method="post"> <p>이름 입력:/p> <p><input type="text" name="name" value=""/></p> <p><input type="submit" value="제출" /></p> </form> </body> </html>
현재 Python shell에서 다음 스크립트를 입력하세요。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, redirect, url_for, request app = Flask(__name__) @app.route('/success/<name>') def success(name): return 'welcome %s' % name @app.route('/login, methods = ['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['name'] return redirect(url_for('success', name=user)) else: user = request.args.get('name') return redirect(url_for('success', name=user)) if __name__ == '__main__': app.run(debug=True)
개발 서버가 실행되면 브라우저에서 login.html을 열고 텍스트 필드에 이름(예:) maxsu )을 클릭 제출.
양식 데이터는 <form> 태그의 action 속성으로 지정된 URL에 제출됩니다.
http://localhost:5000/login은 login() 함수에 매핑됩니다. 서버가 POST 메서드를 통해 데이터를 수신했기 때문에, 양식 데이터에서 'name' 매개변수의 값을 얻으려면 다음과 같이 합니다-
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 user = request.form['name']
이는 URL에 유연한 부분으로 전달됩니다:/성공. 브라우저는 창에서 환영 메시지를 표시합니다.
login.html에서 메서드 매개변수를 GET으로 변경하고 브라우저에서 다시 열어보세요. 서버에 받은 데이터는 GET 메서드를 통해 수신됩니다. 'name' 매개변수의 값은 다음과 같은 방식으로 얻습니다 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 User = request.args.get('name')
여기서 args는 딕셔너리 객체이며, 여러 가지 양식 매개변수와 그에 해당하는 값을 포함하고 있습니다. 이전과 같이 'name' 매개변수에 해당하는 값은 URL에 전달됩니다:/성공.