diff options
Diffstat (limited to 'tutorial')
| -rw-r--r-- | tutorial/1-serialization/index.html | 10 | ||||
| -rw-r--r-- | tutorial/2-requests-and-responses/index.html | 22 | ||||
| -rw-r--r-- | tutorial/3-class-based-views/index.html | 14 | ||||
| -rw-r--r-- | tutorial/4-authentication-and-permissions/index.html | 10 | ||||
| -rw-r--r-- | tutorial/5-relationships-and-hyperlinked-apis/index.html | 10 | ||||
| -rw-r--r-- | tutorial/6-viewsets-and-routers/index.html | 10 | ||||
| -rw-r--r-- | tutorial/quickstart/index.html | 10 |
7 files changed, 71 insertions, 15 deletions
diff --git a/tutorial/1-serialization/index.html b/tutorial/1-serialization/index.html index acdb0893..dda47f72 100644 --- a/tutorial/1-serialization/index.html +++ b/tutorial/1-serialization/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -703,7 +711,7 @@ Quit the server with CONTROL-C. <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/2-requests-and-responses/index.html b/tutorial/2-requests-and-responses/index.html index e6dc3004..3ef5c326 100644 --- a/tutorial/2-requests-and-responses/index.html +++ b/tutorial/2-requests-and-responses/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -390,9 +398,9 @@ <p>From this point we're going to really start covering the core of REST framework. Let's introduce a couple of essential building blocks.</p> <h2 id="request-objects">Request objects</h2> -<p>REST framework introduces a <code>Request</code> object that extends the regular <code>HttpRequest</code>, and provides more flexible request parsing. The core functionality of the <code>Request</code> object is the <code>request.DATA</code> attribute, which is similar to <code>request.POST</code>, but more useful for working with Web APIs.</p> +<p>REST framework introduces a <code>Request</code> object that extends the regular <code>HttpRequest</code>, and provides more flexible request parsing. The core functionality of the <code>Request</code> object is the <code>request.data</code> attribute, which is similar to <code>request.POST</code>, but more useful for working with Web APIs.</p> <pre><code>request.POST # Only handles form data. Only works for 'POST' method. -request.DATA # Handles arbitrary data. Works for 'POST', 'PUT' and 'PATCH' methods. +request.data # Handles arbitrary data. Works for 'POST', 'PUT' and 'PATCH' methods. </code></pre> <h2 id="response-objects">Response objects</h2> <p>REST framework also introduces a <code>Response</code> object, which is a type of <code>TemplateResponse</code> that takes unrendered content and uses content negotiation to determine the correct content type to return to the client.</p> @@ -407,7 +415,7 @@ request.DATA # Handles arbitrary data. Works for 'POST', 'PUT' and 'PATCH' met <li>The <code>APIView</code> class for working with class based views.</li> </ol> <p>These wrappers provide a few bits of functionality such as making sure you receive <code>Request</code> instances in your view, and adding context to <code>Response</code> objects so that content negotiation can be performed.</p> -<p>The wrappers also provide behaviour such as returning <code>405 Method Not Allowed</code> responses when appropriate, and handling any <code>ParseError</code> exception that occurs when accessing <code>request.DATA</code> with malformed input.</p> +<p>The wrappers also provide behaviour such as returning <code>405 Method Not Allowed</code> responses when appropriate, and handling any <code>ParseError</code> exception that occurs when accessing <code>request.data</code> with malformed input.</p> <h2 id="pulling-it-all-together">Pulling it all together</h2> <p>Okay, let's go ahead and start using these new components to write a few views.</p> <p>We don't need our <code>JSONResponse</code> class in <code>views.py</code> anymore, so go ahead and delete that. Once that's done we can start refactoring our views slightly.</p> @@ -429,7 +437,7 @@ def snippet_list(request): return Response(serializer.data) elif request.method == 'POST': - serializer = SnippetSerializer(data=request.DATA) + serializer = SnippetSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) @@ -452,7 +460,7 @@ def snippet_detail(request, pk): return Response(serializer.data) elif request.method == 'PUT': - serializer = SnippetSerializer(snippet, data=request.DATA) + serializer = SnippetSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) @@ -463,7 +471,7 @@ def snippet_detail(request, pk): return Response(status=status.HTTP_204_NO_CONTENT) </code></pre> <p>This should all feel very familiar - it is not a lot different from working with regular Django views.</p> -<p>Notice that we're no longer explicitly tying our requests or responses to a given content type. <code>request.DATA</code> can handle incoming <code>json</code> requests, but it can also handle <code>yaml</code> and other formats. Similarly we're returning response objects with data, but allowing REST framework to render the response into the correct content type for us.</p> +<p>Notice that we're no longer explicitly tying our requests or responses to a given content type. <code>request.data</code> can handle incoming <code>json</code> requests, but it can also handle <code>yaml</code> and other formats. Similarly we're returning response objects with data, but allowing REST framework to render the response into the correct content type for us.</p> <h2 id="adding-optional-format-suffixes-to-our-urls">Adding optional format suffixes to our URLs</h2> <p>To take advantage of the fact that our responses are no longer hardwired to a single content type let's add support for format suffixes to our API endpoints. Using format suffixes gives us URLs that explicitly refer to a given format, and means our API will be able to handle URLs such as <a href="http://example.com/api/items/4.json">http://example.com/api/items/4.json</a>.</p> <p>Start by adding a <code>format</code> keyword argument to both of the views, like so.</p> @@ -532,7 +540,7 @@ curl -X POST http://127.0.0.1:8000/snippets/ -d '{"code": "print 456"}' -H "Cont <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/3-class-based-views/index.html b/tutorial/3-class-based-views/index.html index bdeebb79..eac633aa 100644 --- a/tutorial/3-class-based-views/index.html +++ b/tutorial/3-class-based-views/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -388,7 +396,7 @@ class SnippetList(APIView): return Response(serializer.data) def post(self, request, format=None): - serializer = SnippetSerializer(data=request.DATA) + serializer = SnippetSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) @@ -412,7 +420,7 @@ class SnippetList(APIView): def put(self, request, pk, format=None): snippet = self.get_object(pk) - serializer = SnippetSerializer(snippet, data=request.DATA) + serializer = SnippetSerializer(snippet, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) @@ -509,7 +517,7 @@ class SnippetDetail(generics.RetrieveUpdateDestroyAPIView): <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/4-authentication-and-permissions/index.html b/tutorial/4-authentication-and-permissions/index.html index 12ecfafa..df92f540 100644 --- a/tutorial/4-authentication-and-permissions/index.html +++ b/tutorial/4-authentication-and-permissions/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -566,7 +574,7 @@ class IsOwnerOrReadOnly(permissions.BasePermission): <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/5-relationships-and-hyperlinked-apis/index.html b/tutorial/5-relationships-and-hyperlinked-apis/index.html index 5446c25b..80e84004 100644 --- a/tutorial/5-relationships-and-hyperlinked-apis/index.html +++ b/tutorial/5-relationships-and-hyperlinked-apis/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -519,7 +527,7 @@ urlpatterns += [ <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/6-viewsets-and-routers/index.html b/tutorial/6-viewsets-and-routers/index.html index 69cc3bad..0740d496 100644 --- a/tutorial/6-viewsets-and-routers/index.html +++ b/tutorial/6-viewsets-and-routers/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -509,7 +517,7 @@ urlpatterns = [ <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> diff --git a/tutorial/quickstart/index.html b/tutorial/quickstart/index.html index 4ab94527..762c9aeb 100644 --- a/tutorial/quickstart/index.html +++ b/tutorial/quickstart/index.html @@ -165,6 +165,10 @@ </li> <li > + <a href="../../api-guide/validators">Validators</a> + </li> + + <li > <a href="../../api-guide/authentication">Authentication</a> </li> @@ -264,6 +268,10 @@ </li> <li > + <a href="../../topics/3.0-announcement">3.0 Announcement</a> + </li> + + <li > <a href="../../topics/kickstarter-announcement">Kickstarter Announcement</a> </li> @@ -530,7 +538,7 @@ REST_FRAMEWORK = { <!--/.wrapper --> <footer class="span12"> - <p>Sponsored by <a href="http://dabapps.com/">DabApps</a>.</a> + <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</a> </p> </footer> |
