Python/Flask

[Flask] 페이지 전환 방법 5가지

yubi5050 2022. 5. 17. 22:15

1. [GET] <a> 태그 href 속성

<a href="/test/basic">a 태그로 이동</a>
# a태그 / JS window.location.href 방식
@app.route('/test/basic', methods=['GET'])
def test_basic():
    print('test 수신')
    return "Simple TEST"

2. [GET] <a> 태그 href 속성 + url_for()

<a href="{{url_for('test_name', name ='홍길동')}}" id = "a_" >a 태그 + Url_for</a>
# a태그 + url_for()
@app.route('/test/name', methods=['GET'])
def test_name():
    name = request.args.get('name')
    return "이름은" + name + "입니다."

3. [GET] JS onclick() + window.location.href 방식

<script>
    function btn_onclick1(){ // get 방식
        window.location.href = "/test/basic" // api endpoint로 이동
    }
</script>

<button type="button" id="btn1" onclick="btn_onclick1()">Button</button>
# a태그 / JS window.location.href 방식
@app.route('/test/basic', methods=['GET'])
def test_basic():
    print('test 수신')
    return "Simple TEST"

4. [GET, POST] Form 태그 - submit 방식

<form action="/test/animals" method="POST">
        <input type="text" name="nm"/>
        <button type="submit">Button</button>
</form>
# Form submit 방식 
@app.route('/test/animals', methods=['GET', 'POST'])
def test_animals():
    name = request.form['nm']
    return render_template('test.html', name=name)
 

5. [GET] Redirect

<a href="/test/redir">redirect로 /test/animal에 이동</a>
# Redirect 방식
@app.route('/test/redir', methods=['GET'])
def test_redirect():
    return redirect(url_for('test_name', name='리다이랙트임'))