본문 바로가기

프로그래밍/웹

Python Flask 요청 처리 예제

반응형

# pip install Flask
request.py
 from flask import Flask, request, render_template
  
 app = Flask(__name__)
  
 @app.route('/')
 def home():
     if request.method == 'GET':
         name = request.args.get('name', "anonymous")
         return f"{name} main page"
 
 @app.route('/login', methods=['GET', 'POST'] )
 def login():
 
     if request.method == 'GET':
         return render_template("login.html")
 
     else:    
         uid = request.form['uid']
         upw = request.form['upw']
         return f"id : {uid} pw : {upw}"
         
 
 if __name__ == "__main__":
 		app.run(host='0.0.0.0', port=8000, debug=True)
3 - 플라스크 객체 생성
5 - 메인 페이지 URL 요청 처리
8 - get 방식 "name" 파라미터로 전달받은 값을 가져오고,
요청 값이 없을 경우 기본 값 "anonymous"로 설정
9 - html에 표시할 문자열, 문자열 앞에 f를 지정하여 중괄호로 변수값 출력 가능
혹은 "return "({}) main page".format(name)"처럼 표현
11 - 로그인 페이지 URL 요청 처리
15 - 로그인 페이지 접근 시 login.html 파일 로딩
스크립트가 존재하는 경로에 templates 폴더를 만들고 login.html 파일을 작성
17~20 - 로그인 페이지 폼 제출 시 이용자가 입력한 uid, upw 값이 화면에 출력
23 - 메인 프로그램에서 플라스크를 생성했는지 확인
24 - 127.0.0.1:8000 접속 설정, 포트 미지정시 flask의 기본 포트는 5000


templates/login.html
 <!DOCTYPE html> 
 <html> 
 <body><center>
  
 	<form action="http://127.0.0.1:8000/login" method="POST"> 
 	<label for="uid">- ID -</label><br> 
 	<input type="text" name="uid"><br> 
 	
 	<label for="uid">- PW -</label><br> 
 	<input type="password" name="upw"><br> 
 	
 	<input type="submit" value="로그인"> 
 	</form>
 
 </center><br>
 </body>
 </html>

 

templates 폴더 내 html 파일, static 폴더에 정적 파일(css,js) 저장

반응형