Skip to content

Latest commit

 

History

History
111 lines (64 loc) · 2.22 KB

08_Request_and_Response_Objects.md

File metadata and controls

111 lines (64 loc) · 2.22 KB

Request and Response Objects

Django uses request and response objects to pass state through the system.

https://docs.djangoproject.com/en/3.0/ref/request-response/


Overview

  • Django creates an HttpRequest (contains metadata about the request) object when a page is requested
  • Django loads the appropriate view, passing the HttpRequest as the first argument to the view function
    • Each view is responsible for returning an HttpResponse objec


HttpRequest objects

class HttpRequest


Attributes


HttpRequest.method

  • A string representing the HTTP method used in the request.
  • This is guaranteed to be uppercase.

ex)

if request.method == 'GET':
    do_something()
elif request.method == 'POST':
    do_something_else()

HttpRequest.FILES

  • A dictionary-like object containing all uploaded files.

    • Each key in FILES is the name from the <input type="file" name="">.
    • Each value in FILES is an UploadedFile.
  • FILES will only contain data if the request method was POST and the <form> that posted to the request had enctype="multipart/form-data".

    • Otherwise, FILES will be a blank dictionary-like object.


HttpResponse objects

class HttpResponse


  • In contrast to HttpRequest objects, which are created automatically by Django, HttpResponse objects are your responsibility.

    • Each view you write is responsible for instantiating, populating, and returning an HttpResponse.
  • The HttpResponse class lives in the django.http module.



HttpResponse subclasses


class HttpResponseBadRequest

  • Acts just like HttpResponse but uses a 400 status code.

class HttpResponseNotFound

  • Acts just like HttpResponse but uses a 404 status code.

class HttpResponseForbidden

  • Acts just like HttpResponse but uses a 403 status code.

class HttpResponseNotAllowed

  • Like HttpResponse, but uses a 405 status code.
  • The first argument to the constructor is required: a list of permitted methods (e.g. ['GET', 'POST']).


+

Monolithic Architecture란?

:

  • 장점
    • 하나에 다있으니까 빠르게 개발 가능
  • 단점
    • 확장이 어려움