기본적인 코드다.
1
2
3
4
5
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
return "<h1>hello<h1>"
|
cs |
메소드를 지정해줄 수 있고, html 코드를 리턴해줄 수 있다.
1
2
3
4
5
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
return render_template('index.html')
|
cs |
templates 경로가 디폴트라서 거기 기준으로 index.html을 리턴해줄 수도 있다.
1
2
3
4
5
6
7
8
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
if(request.method == 'GET'):
return render_template('index.html')
else:
return render_template('NOP.html')
|
cs |
request.method로 메소드 구별도 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
if(request.method=='GET'):
cookie = request.cookies.get('id')
return f"<h1>{id}</h1> <form action = '/' method='post'><input type='text' name = 'id'><input type='submit' value = 'submit'></form>"
elif(request.method =='POST'):
id = request.form.get('id')
resp = make_response(f'<script>location.replace(document.referrer);</script>')
resp.set_cookie('id', id)
return resp
|
cs |
request.form.get으로 post의 body부분의 파라미터를 받아올 수 있다.
request.args.get으로 url에서 파라미터도 받을 수 있다.
form태그에서 action으로 path 지정해주고, 메소드를 지정할 수 있다.
text로 입력받고 name이 키 값인 상태로 전달해줄 수 있다.
submit이 눌러지면 form태그는 요청을 보낸다.
make_response로 잡아두고 쿠키를 설정해주고 리턴했다.
쿠키는 request.cookies.get()으로 받아올 수 있다.
1
2
3
4
5
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
return render_template('index.html',var='hi')
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hallow!</title>
</head>
<body>
<h1>{{var}}</h1>
</body>
</html>
|
cs |
index.html을 보면 {{}}를 통해 변수의 값을 출력해줄 수 있다.
jinja2가 알아서 {{var}}을 'hi'로 렌더링해준다.
1
2
3
4
5
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
return render_template('index.html')
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hallow!</title>
</head>
<body>
{% for i in range(10) %}
<h1>{{i}}</h1>
{% endfor %}
</body>
</html>
|
cs |
for문도 쓸 수 있다.
객체를 넘겨받았을 때 for문에서 len()을 사용하려면
{% for i in range(obj | length) %} 처럼 사용해야 한다.
1
2
3
4
5
|
from flask import *
app = Flask(__name__)
@app.route('/', methods=['GET','POST'])
def index():
return render_template('index.html')
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hallow!</title>
</head>
<body>
{% if in == 'hi~' %}
<h1>hello!</h1>
{% elif in == 'no hi~' %}
<h1>bye!</h1>
{% else %}
<h1>hallo!</h1>
{% endif %}
</body>
</html>
|
cs |
if도 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>hallow!</title>
</head>
<body>
<script src="{{url_for('static',filename='JS/app.js')}}"></script>
</body>
</html>
|
cs |
css나 js를 가져오려면 url_for을 사용하면 된다.
기본적으로 static이라서 바꾸면 안 된다.
'프로그래밍 > PYTHON' 카테고리의 다른 글
flask와 sqlite3 (0) | 2022.06.02 |
---|