4.5. Enum Built-in

4.5.1. http.HTTPStatus

>>> from http import HTTPStatus
>>> HTTPStatus(200).name
'OK'
>>>
>>> HTTPStatus(404).name
'NOT_FOUND'
>>>
>>> HTTPStatus(500).name
'INTERNAL_SERVER_ERROR'
>>>
>>> HTTPStatus(418).name
'IM_A_TEAPOT'

4.5.2. http.HTTPMethod

  • Since 3.11:

>>> from http import HTTPMethod
>>> HTTPMethod.GET
<HTTPMethod.GET>
>>>
>>> HTTPMethod.GET == 'GET'
True
>>>
>>> HTTPMethod.GET.value
'GET'
>>>
>>> HTTPMethod.GET.description
'Retrieve the target.'
>>>
>>> list(HTTPMethod)
[<HTTPMethod.CONNECT>,
 <HTTPMethod.DELETE>,
 <HTTPMethod.GET>,
 <HTTPMethod.HEAD>,
 <HTTPMethod.OPTIONS>,
 <HTTPMethod.PATCH>,
 <HTTPMethod.POST>,
 <HTTPMethod.PUT>,
 <HTTPMethod.TRACE>]

4.5.3. Use Case - 1

>>> from urllib.request import urlopen
>>> from http import HTTPStatus
>>>
>>>
>>> resp = urlopen('https://python3.info')
>>>
>>> if resp.status == HTTPStatus.OK:
...     print('OK')
... elif resp.status == HTTPStatus.NOT_FOUND:
...     print('NOT_FOUND')
... elif resp.status == HTTPStatus.BAD_REQUEST:
...     print('BAD_REQUEST')
... elif resp.status == HTTPStatus.TEMPORARY_REDIRECT:
...     print('TEMPORARY_REDIRECT')
... elif resp.status == HTTPStatus.PERMANENT_REDIRECT:
...     print('PERMANENT_REDIRECT')
... elif resp.status == HTTPStatus.INTERNAL_SERVER_ERROR:
...     print('INTERNAL_SERVER_ERROR')
...
OK