반응형
파라미터 받기
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')
- 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')
- 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')
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')
- 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>
=> 배열의 경우 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>
- 배열로 받은 값을 테이블로 가져오기
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>
반응형
'Python' 카테고리의 다른 글
[Python] 17장 과제 (0) | 2024.04.03 |
---|---|
[Python] 16장 python의 flask MVC 패턴 (0) | 2024.04.03 |
[Python] 14장 flask 설치 및 설정 (0) | 2024.04.03 |
[Python] 13장 파이썬으로 하는 MySQL 데이터 삽입, 수정, 삭제 (0) | 2024.04.02 |
[Python] 12장 HeidiSQL 데이터베이스, 테이블 생성 및 데이터 삽입 (0) | 2024.04.02 |