ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python Flask Example 플라스크 예제 !! 정복하기(1)
    Python/Python 2021. 1. 15. 18:19

    요즘 파이썬 플라스크를 쓸 일이 많아서 공부할겸 

    파이썬 플라스크에 대한 몇가지 예제를 진행했습니다.

     

    참고 교제는

    Flask 기반의 파이썬 웹 프로그래밍 - 저자 이지호 

    를 참조하여 작성하였습니다

    from flask import Flask
    app = Flask(__name__)
    
    # 일반적인 라우트 방식입니다.
    @app.route('/board')
    def board():
        return "그냥 보드"
    
    # URL 에 매개변수를 받아 진행하는 방식입니다.
    @app.route('/board/<article_idx>')
    def board_view(article_idx):
        return article_idx
    
    # 위에 있는것이 Endpoint 역활을 해줍니다.
    @app.route('/boards',defaults={'page':'index'})
    @app.route('/boards/<page>')
    def boards(page):
        return page+"페이지입니다."
    
    app.run(host="localhost",port=5001)

    위 예제는 웹을 라우팅하는 몇가지 방식들입니다. 

    @app.route('/board')
    def board():
        return "그냥 보드"

    1) 그냥 단순하게 입력값을 받아서 그 주소로 라우팅해줍니다.

     

    @app.route('/board/<article_idx>')
    def board_view(article_idx):
        return article_idx

    2) 라우팅한 주소 뒤에 그 다음 주소를 입력 받을 때는 매개 변수로 받습니다. 

    < > 로 묶어주면 됩니다.

    # 위에 있는것이 Endpoint 역활을 해줍니다.
    @app.route('/boards',defaults={'page':'index'})
    @app.route('/boards/<page>')
    def boards(page):
        return page+"페이지입니다."

    3) 아무것도 없을 때는 디폴트 값을 매개 변수가 있을때는 매개변수 값을 리턴해줍니다. 

    from flask import Flask
    app = Flask(__name__)
    
    def index():
        return 'index'
    
    def main():
        return 'main'
    
    
    # 데코레이트 방식이 아닌 함수 명령을 사용해서 route를 하는 방식 
    # 기능의 차이보다는 대규모 관리에서 유용하다고 하네요 
    app.add_url_rule("/","index",index)
    app.add_url_rule("/sd","main",main)
    
    app.run(host="localhost",port=5002)
    

    해당 예제는 데코레이트 방식이 아닌 함수 명령을 사용하는 라우팅 방식입니다

    기능에 차이보다는 유지 보수를 위한 방식이라고 하네요  실행 결과는 생략하겟습니다.

     

    import json
    from flask import Flask , request
    app = Flask(__name__)
    
    # GET 방식 
    # URL http://127.0.0.1:5003/board?question=anw 
    @app.route("/board")
    def board_list():
        return f"question 변수의 값은 {request.args.get('question')}"
    
    @app.route("/boards",methods=["POST"])
    def board_list2():
        post_result = json.loads(request.get_data())
        
        return f"question 변수의 값은 {post_result}"
    
    @app.route("/dobule",methods=["POST","GET"])
    def dobule():
        if request.method == "GET":
            return "GET 요청 내용은{}".format(request.args.get('question'))
        if request.method == "POST":
            return "POST 요청 내용은{}".format(json.loads(request.get_data()))
    app.run(host="localhost",port=5003)

    해당 방식은 Flask 에 기본적인 리퀘스트를 요청하는 방식입니다.

    @app.route("/board")
    def board_list():
        return f"question 변수의 값은 {request.args.get('question')}"

    GET 요청 방식 입니다. 

     

    @app.route("/boards",methods=["POST"])
    def board_list2():
        post_result = json.loads(request.get_data())
        
        return f"question 변수의 값은 {post_result}"

    POST 요청 방식입니다.

     

    이상으로 간단하게 몇가지 예제를 진행했습니다. 

    댓글

Designed by Tistory.