#32259: Rename request attributes
-------------------------------------+-------------------------------------
               Reporter:  Adam       |          Owner:  nobody
  (Chainz) Johnson                   |
                   Type:             |         Status:  assigned
  Cleanup/optimization               |
              Component:  HTTP       |        Version:  master
  handling                           |
               Severity:  Normal     |       Keywords:
           Triage Stage:             |      Has patch:  0
  Unreviewed                         |
    Needs documentation:  0          |    Needs tests:  0
Patch needs improvement:  0          |  Easy pickings:  0
                  UI/UX:  0          |
-------------------------------------+-------------------------------------
 As discussed [https://groups.google.com/g/django-developers/c/Kx8BfU-
 z4_E/m/lFXTF0IMCQAJ on the mailing list] (back in May):

 > request.GET and request.POST are misleadingly named:
 >
 > * GET contains the URL parameters and is therefore available whatever
 the request method. This often confuses beginners and “returners” alike.
 > * POST contains form data on POST requests, but not other kinds of data
 from POST requests. It can confuse users who are posting JSON or other
 formats.
 >
 > Additionally both names can lead users to think e.g. "if request.GET:"
 means "if this is a GET request", which is not true.
 >
 > I believe the CAPITALIZED naming style was inherited from PHP's global
 variables $_GET, $_POST, $_FILES etc. (
 https://www.php.net/manual/en/reserved.variables.get.php ). It stands out
 as unpythonic, since these are instance variables and not module-level
 constants (as per PEP8 https://www.python.org/dev/peps/pep-0008/#constants
 ).
 >
 > I therefore propose these renames:
 >
 > * request.GET -> request.query_params (to match Django Rest Framework -
 see below)
 > * request.POST -> request.form_data
 > * request.FILES -> request.files
 > * request.COOKIES -> request.cookies
 > * request.META -> request.meta

 The biggest concern on the mailing list was churn. Therefore we won't
 deprecate the old names, but will document them as historical aliases.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32259>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/053.740dddbb6260803fd49b311fca809297%40djangoproject.com.

Reply via email to