Module Import alias ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam NameParam defaults body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Assign SubscriptStore NameLoad Index Str Call AttributeLoad NameLoad attr Str If UnaryOpNot Call AttributeLoad NameLoad attr Str body Assign SubscriptStore NameLoad Index Str Call NameLoad Call NameLoad AttributeLoad NameLoad attr If Call AttributeLoad NameLoad attr Str body Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad If CompareEq NameLoad SubscriptLoad NameLoad Index Str body Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Str Assign SubscriptStore NameLoad Index Str Str If Call AttributeLoad NameLoad attr Str body Assign NameStore SubscriptLoad NameLoad Index Str Assign NameStore Call AttributeLoad AttributeLoad NameLoad attr attr Str NameLoad If CompareEq NameLoad SubscriptLoad NameLoad Index Str body Assign AttributeStore NameLoad attr Num Assign AttributeStore NameLoad attr Str Assign SubscriptStore NameLoad Index Str Str If CompareEq AttributeLoad NameLoad attr Str body Assign AttributeStore NameLoad attr Str Return NameLoad decorator_list decorator_list ClassDef bases NameLoad body Expr Str FunctionDef arguments args NameParam NameParam defaults body TryExcept body Assign NameStore SubscriptLoad AttributeLoad NameLoad attr Index Str handlers ExceptHandler type NameLoad body Return NameLoad orelse Assign NameStore SubscriptLoad Call AttributeLoad NameLoad attr Str Index Num Assign SubscriptStore AttributeLoad NameLoad attr Index Str NameLoad decorator_list decorator_list
N/A N/A datetime ConditionalGetMiddleware N/A object N/A N/A 
    Handles conditional GET operations. If the response has a ETag or
    Last-Modified header, and the request has If-None-Match or
    If-Modified-Since, the response is replaced by an HttpNotModified.

    Removes the content from any response to a HEAD request.

    Also sets the Date and Content-Length response-headers.
     process_response N/A N/A self request response N/A N/A N/A now N/A N/A N/A datetime datetime utcnow N/A N/A response N/A Date N/A N/A now strftime %a, %d %b %Y %H:%M:%S GMT N/A N/A N/A N/A response has_header Content-Length N/A N/A N/A response N/A Content-Length N/A str N/A len N/A response content N/A N/A N/A response has_header ETag N/A N/A if_none_match N/A N/A N/A request META get HTTP_IF_NONE_MATCH None N/A N/A if_none_match N/A response N/A ETag N/A N/A N/A response status_code 304 N/A N/A response content N/A N/A response N/A Content-Length 0 N/A N/A N/A response has_header Last-Modified N/A N/A last_mod N/A response N/A Last-Modified N/A if_modified_since N/A N/A N/A request META get HTTP_IF_MODIFIED_SINCE None N/A N/A if_modified_since N/A response N/A Last-Modified N/A N/A N/A response status_code 304 N/A N/A response content N/A N/A response N/A Content-Length 0 N/A N/A N/A request method HEAD N/A N/A N/A response content N/A response N/A N/A SetRemoteAddrFromForwardedFor N/A object N/A N/A 
    Middleware that sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, if the
    latter is set. This is useful if you're sitting behind a reverse proxy that
    causes each request's REMOTE_ADDR to be set to 127.0.0.1.

    Note that this does NOT validate HTTP_X_FORWARDED_FOR. If you're not behind
    a reverse proxy that sets HTTP_X_FORWARDED_FOR automatically, do not use
    this middleware. Anybody can spoof the value of HTTP_X_FORWARDED_FOR, and
    because this sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, that means
    anybody can "fake" their IP address. Only use this when you can absolutely
    trust the value of HTTP_X_FORWARDED_FOR.
     process_request N/A N/A self request N/A N/A N/A N/A N/A real_ip N/A N/A request META N/A HTTP_X_FORWARDED_FOR N/A N/A N/A KeyError N/A N/A None N/A N/A real_ip N/A N/A N/A real_ip split , N/A 0 N/A N/A N/A request META N/A REMOTE_ADDR real_ip N/A N/A