티스토리 뷰
개요
Flask로 페이지를 만들 때 parameter를 1개 또는 여러개를 넘겨서 호출할 일이 있어서 이 포스트를 정리 해봅니다.
1개 넘기기
<a href="{{url_for('home', namespace="ns-abc-def")}}">{{"ns-abc-def"}}</a>
위 url_for()함수를 쓰게 되면 아래와 같은 get요청을 만들어 줍니다.
http://localhost:8082/home?namespace=20210517
2개 넘기기
<a href="{{url_for('home', name='hello', namespace='world')}}">{{"click"}}</a>
1개 넘기는 것이랑 2개 이상 넘길 때 쓰는 방식은 ,로 구분해서 넘겨주면 됩니다.
1개 받기
@app.route('/home')
def home():
ns = request.args.get('namespace', default = 'ns-abc-aaa', type = str)
print(ns)
return render_template('home.html', ns=ns)
앞에서 1개를 넘겼을 때 받는 방법입니다.
2개 받기
@app.route('/home')
def home():
ns = request.args.get('namespace', default = 'ns-abc-aaa', type = str)
name = request.args.get('name', default = 'bbb', type = str)
print(ns, name)
return render_template('home.html', ns=ns, name=name)
Form을 이용해 Get으로 넘기고 받기
<form action="{{url_for('auction_list')}}" method="get">
<div class="col-md-6">
<input type="text" class="form-control" name="date" id="date" placeholder="기한을 선택해주세요."/>
</div>
<div class="col-md-1">
<input type="submit" class="btn btn-primary"/>
</div>
</form>
앞에서는 url_for()를 이용해서 넘겼지만 Form을 써서 넘기고 싶을때는 이 방법을 씁니다.
auction_list에 get으로 가는 요청을 만듭니다. get요청을 하면 argument에 내가 보낸 내용이 보입니다.
http://localhost:8082/auction_list?date=20210517
submit버튼을 누르면 url에 위와 같이 나오면서 요청이 전송됩니다.
받기
@app.route('/auction_list', methods=['GET', 'POST'])
def auction_list():
date = '20210514'
if request.args.get('date') != None and request.args.get('date') != '':
date = request.args.get('date')
request.args.get('date')를 이용해 get요청의 파라메터로 받은 값을 읽을 수 있습니다.
http://localhost:5000/home_filter/<KEYWORD>?namespace=ns-abc-def 형식으로 넘기기
<a href="{{url_for('home_filter', keyword=info.KEYWORD, namespace=info.NAMESPACE)}}">{{info.NAME}}</a>
/home_filter/<KEYWORD> 형태로 KEYWORD를 넘기고 parameter로 namespace를 넘기고 싶을 때 위와 같이 요청 합니다.
받을때는 아래와 같이 받습니다.
@app.route('/home_filter/<keyword>')
def home_filter(keyword):
ns = request.args.get('namespace', default = 'ns-abc-def', type = str)
keyword파라메터로 /home_filter/<KEYWORD> 이렇게 넘긴게 들어가고 ns로는 namespace 파라메터로 넘긴 값이 들어옵니다.
flash()
<div class="col-md-8">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
</div>
flash('msg', 'success')로 message를 ui에 표시하고 싶을때 코드
<div class="col-md-8">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
</div>
Parameter2개 args2개 넘기기
@ns.route("/statistics/<string:category_1_id>/<string:category_2_id>/", methods=["GET", "POST"])
class statistics_list2(Resource):
def get(self, category_1_id, category_2_id):
print(category_1_id, category_2_id)
print(request.args)
from_date = request.args.get('from')
to_date = request.args.get('to')
return f'category1:{category_1_id} category2:{category_2_id} from_date:{from_date} to_date:{to_date}', 201
- Total
- Today
- Yesterday
- docker container tissue
- 도커티슈박스
- docker container tissue box
- Sh
- 도커각티슈박스
- docker container whale
- 도커컨테이너
- shellscript
- 이직
- docker container case
- docker container
- 싱가폴
- 도커티슈케이스
- 개발자
- vim
- 도커각티슈케이스
- 2017 티스토리 결산
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |