Flask의 요청으로 Boolean을 GET

5265 단어 파이썬Python3Flask

환경


  • 파이썬 3.7.0
  • Flask 1.0.2

  • 우선 SOURCE



    bool 형의 is_hoge를 request로 받아들여 돌려줄 뿐의 API

    hoge.py
    from flask import Flask, request
    app = Flask(__name__)
    
    @app.route("/", methods=['GET'])
    def hello():
        is_hoge = request.args.get('is_hoge', type=bool)
        return f'{ is_hoge }'
    
    if __name__ == "__main__":
        app.run()
    

    기대치


  • true 보내면 True
  • false 보내면 False
  • 0 보내면 False

  • 실행 결과


  • true
  • false
  • 0을 보내면


  • 뭐라고 말할 것입니다. 모든 결과로서 True 가 돌아왔습니다.
    신미 페이페의 고찰로서는 모두 문자열로서 파악되어 버려 True 가 돌아왔다고 생각합니다.

    어떻게 든 Boolean으로 사용할 수 있기를 원합니다.



    파이썬에는 strtobool() 이라는 편리한 함수가 있다고 하고, 이것을 사용해 갑니다.

    converter.py
    from distutils.util import strtobool
    
    def convert_to_bool(target_object, default_val):
        if target_object is None:
            return default_val
        try:
            return strtobool(target_object)
        except:
            return default_val
    

    인수로 가져온 값이 None 의 때나 예외가 발생했을 경우에는 default_val 를 돌려주도록(듯이) 했습니다.

    hoge.py
        is_hoge = converter.convert_to_bool(request.args.get('is_hoge'), False)
    

    다시 실행


  • true
  • false
  • 0

  • 0과 1이 돌아오게 되었습니다. 수치의 진위치의 판별이면 0은 False, 0 이외는 True가 되므로 문제 없다고 생각합니다!

    후기



    처음의 투고이므로, 이르지 못하는 점이 있으면 교시해 주시면 다행입니다.

    좋은 웹페이지 즐겨찾기