반응형

 

파라미터 받기

 

 

from flask import Flask,request

app = Flask(__name__)

@app.route('/')
def hello():
   return 'Hello World'

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

결과 화면1

 

 

 

  • get 방식
from flask import Flask,request

app = Flask(__name__)

@app.route('/param')
def param():
   menu = request.args.get('menu', "탕수육")
   return 'PARAM:'+menu

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

 

결과 화면2

 

 

 

  • post 방식 (get 포함)

form.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost/post" method="post">
	<input type="text" name="menu" value="짜장면">
	<input type="submit">
</form>
</body>
</html>

 

 

my_flask.py

from flask import Flask,request

app = Flask(__name__)

@app.route('/post', methods=['POST','GET'])
def post():
   menu = request.form['menu']
   return 'POST:'+menu

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

 

결과 화면3-1

 

결과 화면3-2 : 제출 클릭 시

 

 

flask는 java와 달리 html을 동적인 것으로 여겨 사용한다.

 

 

+ forward와 redirect 

forward : url이 안 바뀜

redirect : url이 바뀜 

 

 

 

html 연결

 

 

from flask import Flask,request,render_template

app = Flask(__name__)

@app.route('/forw')
def forw():
   return render_template('forw.html')

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

결과 화면4

 

 

html 파일이 templates 폴더 안에 없으면 오류 발생!!

 

 

 

  • HTML로 값 전달

my_flask.py

from flask import Flask,request,render_template

app = Flask(__name__)

@app.route('/forw')
def forw():
   a = "홍길동"
   b = ["전우치","장화홍련"]
   return render_template('forw.html', a=a, b=b)

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

 

forw.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
FORW HTML <br>
{{a}} <br>
{{b}} <br>
</body>
</html>

 

결과 화면5

 

 

=> 배열의 경우 for를 사용하여 하나하나 출력

 

 

 

  • HTML로 값 전달 (배열)

 

my_flask.py

from flask import Flask,request,render_template

app = Flask(__name__)

@app.route('/forw')
def forw():
   a = "홍길동"
   b = ["전우치","장화홍련"]
   return render_template('forw.html', a=a, b=b)

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

 

forw.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
FORW HTML <br>
{{a}} <br>
{% for i in b %}
	{{i}}<br>
{% endfor %}
</body>
</html>

 

결과 화면6

 

 

 

  • 배열로 받은 값을 테이블로 가져오기

my_flask.py

from flask import Flask,request,render_template

app = Flask(__name__)

@app.route('/emp')
def emp():
    mylist = [
        {'e_id':'1','e_name':'1','gen':'1','addr':'1'},
        {'e_id':'2','e_name':'2','gen':'2','addr':'2'},
        {'e_id':'3','e_name':'3','gen':'3','addr':'3'}
    ]
    return render_template('emp.html', mylist=mylist)

if __name__ == '__main__':
  app.run(debug=True, port=80, host='0.0.0.0')

 

 

emp.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	EMP HTML

	<table border = 1>
		<tr>
			<th> 아이디 </th>
			<th> 이름 </th>
			<th> 성별 </th>
			<th> 주소 </th>
		</tr>
		{% for key in mylist %}
		<tr>
			<td> {{ key['e_id'] }} </td>
			<td> {{ key.e_name }} </td>
			<td> {{ key['gen'] }} </td>
			<td> {{ key['addr'] }} </td>
		</tr>
		{% endfor %}
	</table>
</body>
</html>

 

7

 

 

반응형