pw = request.args.get("pw", "")가 무슨 의미인지 모르겠습니다.

제가 이해한 바로는 맨 처음 pw에 사용자가 pw=~라고 입력을 하면 get 메소드 형식의 파라미터가 저장이 되는 거라고 이해를 했습니다.
그리고 get는 post로 바꿔서 쓸 수 없나요?
그런데 request.args가 대체 뭔가요??
그리고 뒤에 ("pw","")인데 왜 "" 처리를 한 건가요??
아무리 찾아봐도 리스트, 튜플 이런 내용 밖에 안나와서요ㅜ 튜플이라고 하기에는 pw=~로 값 변경이 되는데 튜플은 아닌 것 같아서요ㅠ

작성자 정보
답변 1
memento
대표 업적 없음

https://tedboy.github.io/flask/interface_api.incoming_request_data.html#flask.Request.args

args: A MultiDict with the parsed contents of the query string. (The part in the URL after the question mark).

HTTP Request의 query strings에 해당하는 데이터를 python Multidict 오브젝트로 표현한 것입니다.
그러면 multidict의 get 메소드가 어떤 행동을 하는지 알면 되겠죠? 검색해보니 다음과 같은 결과가 나옵니다.

참고: https://multidict.readthedocs.io/en/stable/multidict.html#multidict.MultiDict.get

첫번째 인자로 key를 넘겨주면 딕셔너리에 있는 첫번째 value을 얻고, 만약 key에 해당하는 value가 딕셔너리에 없다면
두번째 인자를 default value로써 반환합니다. 만약 두번째 인자의 기본 값은 None 입니다.

따라서 request.argsargs["pw"]라는 값이 있다면 그 값을 반환할 것이고 아니라면 ""을 대신 반환할 것입니다.

이는 다음 코드의 행동과 동일합니다.

def get(self, key, default=None):
    if key in self._dict:
    	return self._dict[key]
    return default
2022.01.10. 15:41
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기