Add favicon

This commit is contained in:
Tom Christie 2012-10-05 15:26:53 +01:00
parent 07e6b69101
commit 965422f8dc
34 changed files with 487 additions and 42 deletions

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -146,9 +149,9 @@
return Response(content)
</code></pre>
<p>Or, if you're using the <code>@api_view</code> decorator with function based views.</p>
<pre class="prettyprint lang-py"><code>@api_view('GET'),
@authentication_classes(SessionAuthentication, UserBasicAuthentication)
@permissions_classes(IsAuthenticated)
<pre class="prettyprint lang-py"><code>@api_view(('GET',)),
@authentication_classes((SessionAuthentication, UserBasicAuthentication))
@permissions_classes((IsAuthenticated,))
def example_view(request, format=None):
content = {
'user': unicode(request.user), # `django.contrib.auth.User` instance.
@ -200,9 +203,19 @@ print token.key
<p>To implement a custom authentication policy, subclass <code>BaseAuthentication</code> and override the <code>.authenticate(self, request)</code> method. The method should return a two-tuple of <code>(user, auth)</code> if authentication succeeds, or <code>None</code> otherwise.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -110,9 +113,19 @@
</blockquote>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -162,9 +165,19 @@ Content-Length: 42
<p>By default this exception results in a response with the HTTP status code "429 Too Many Requests".</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -143,9 +146,19 @@
<h2 id="manyhyperlinkedrelatedfield">ManyHyperlinkedRelatedField</h2>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -111,9 +114,19 @@ used all the time.</p>
</blockquote>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -198,9 +201,19 @@
<p>Provides a <code>.destroy(request, *args, **kwargs)</code> method, that implements deletion of an existing model instance.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -207,9 +210,19 @@ class CustomPaginationSerializer(pagination.BasePaginationSerializer):
</code></pre>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -124,9 +127,19 @@ sending more complex data than simple forms</p>
<h2 id="custom-parsers">Custom parsers</h2>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -177,9 +180,19 @@ def example_view(request, format=None):
<p>The method should return <code>True</code> if the request should be granted access, and <code>False</code> otherwise.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -108,6 +111,7 @@
<li><a href="#htmltemplaterenderer">HTMLTemplateRenderer</a></li>
<li><a href="#custom-renderers">Custom renderers</a></li>
<li class="main"><a href="#advanced-renderer-usage">Advanced renderer usage</a></li>
<li><a href="#varying-behaviour-by-media-type">Varying behaviour by media type</a></li>
<li><a href="#designing-your-media-types">Designing your media types</a></li>
</ul>
@ -162,6 +166,7 @@ def user_count_view(request, format=None):
<p>It's important when specifying the renderer classes for your API to think about what priority you want to assign to each media type. If a client underspecifies the representations it can accept, such as sending an <code>Accept: */*</code> header, or not including an <code>Accept</code> header at all, then REST framework will select the first renderer in the list to use for the response.</p>
<p>For example if your API serves JSON responses and the HTML browseable API, you might want to make <code>JSONRenderer</code> your default renderer, in order to send <code>JSON</code> responses to clients that do not specify an <code>Accept</code> header.</p>
<p>If your API includes views that can serve both regular webpages and API responses depending on the request, then you might consider making <code>TemplateHTMLRenderer</code> your default renderer, in order to play nicely with older browsers that send <a href="http://www.gethifi.com/blog/browser-rest-http-accept-headers">broken accept headers</a>.</p>
<hr />
<h1 id="api-reference">API Reference</h1>
<h2 id="jsonrenderer">JSONRenderer</h2>
<p><strong>.media_type:</strong> <code>application/json</code></p>
@ -195,6 +200,7 @@ Unlike other renderers, the data passed to the <code>Response</code> does not ne
<p><strong>.format:</strong> <code>'.html'</code></p>
<h2 id="custom-renderers">Custom renderers</h2>
<p>To implement a custom renderer, you should override <code>BaseRenderer</code>, set the <code>.media_type</code> and <code>.format</code> properties, and implement the <code>.render(self, data, media_type)</code> method.</p>
<hr />
<h1 id="advanced-renderer-usage">Advanced renderer usage</h1>
<p>You can do some pretty flexible things using REST framework's renderers. Some examples...</p>
<ul>
@ -203,6 +209,7 @@ Unlike other renderers, the data passed to the <code>Response</code> does not ne
<li>Specify multiple types of HTML representation for API clients to use.</li>
<li>Underspecify a renderer's media type, such as using <code>media_type = 'image/*'</code>, and use the <code>Accept</code> header to vary the encoding of the response. </li>
</ul>
<h2 id="varying-behaviour-by-media-type">Varying behaviour by media type</h2>
<p>In some cases you might want your view to use different serialization styles depending on the accepted media type. If you need to do this you can access <code>request.accepted_renderer</code> to determine the negotiated renderer that will be used for the response.</p>
<p>For example:</p>
<pre class="prettyprint lang-py"><code>@api_view(('GET',))
@ -232,9 +239,19 @@ def list_users(request):
<p>For good examples of custom media types, see GitHub's use of a custom <a href="http://developer.github.com/v3/media/">application/vnd.github+json</a> media type, and Mike Amundsen's IANA approved <a href="http://www.amundsen.com/media-types/collection/">application/vnd.collection+json</a> JSON-based hypermedia.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -149,9 +152,19 @@
<p>If you're using the <code>rest_framework.views.View</code> class... <strong>[TODO]</strong></p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -149,11 +152,11 @@ response['Cache-Control'] = 'no-cache'
<hr />
<h1 id="attributes">Attributes</h1>
<h2 id="data">.data</h2>
<p>The unrendered content of a <code>Request</code> object can be accessed using the <code>.data</code> attribute.</p>
<p>The unrendered content of a <code>Request</code> object.</p>
<h2 id="status_code">.status_code</h2>
<p>The numeric status code of the HTTP response.</p>
<h2 id="content">.content</h2>
<p>The rendered content of the response. <code>.render()</code> must have been called before <code>.content</code> can be accessed.</p>
<p>The rendered content of the response. The <code>.render()</code> method must have been called before <code>.content</code> can be accessed.</p>
<h2 id="template_name">.template_name</h2>
<p>The <code>template_name</code>, if supplied. Only required if <code>HTMLTemplateRenderer</code> or some other custom template renderer is the accepted renderer for the reponse.</p>
<h2 id="accepted_renderer">.accepted_renderer</h2>
@ -164,9 +167,19 @@ response['Cache-Control'] = 'no-cache'
<p>Set automatically by the <code>APIView</code> or <code>@api_view</code> immediately before the response is returned from the view.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -141,9 +144,19 @@ class APIRootView(APIView):
<p>Has the same behavior as <a href="https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse-lazy"><code>django.core.urlresolvers.reverse_lazy</code></a>, except that it returns a fully qualified URL, using the request to determine the host and port.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -306,9 +309,19 @@ The <code>ModelSerializer</code> class lets you automatically create a Serialize
</code></pre>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -209,9 +212,19 @@ print api_settings.DEFAULT_AUTHENTICATION
<p>Default: <code>'format'</code></p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -185,9 +188,19 @@ HTTP_511_NETWORD_AUTHENTICATION_REQUIRED
</code></pre>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -225,9 +228,19 @@ class UploadView(APIView):
<p>Optionally you may also override the <code>.wait()</code> method. If implemented, <code>.wait()</code> should return a recomended number of seconds to wait before attempting the next request, or <code>None</code>. The <code>.wait()</code> method will only be called if <code>.check_throttle()</code> has previously returned <code>False</code>.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -165,7 +168,7 @@
<p>The following methods are called directly by the view's <code>.dispatch()</code> method.
These perform any actions that need to occur before or after calling the handler methods such as <code>.get()</code>, <code>.post()</code>, <code>put()</code> and <code>.delete()</code>.<br />
</p>
<h3 id="initialself-request-args-kwargs">.initial(self, request, <em>args, </em>*kwargs)</h3>
<h3 id="initialself-request-42args-kwargs">.initial(self, request, *args, **kwargs)</h3>
<p>Performs any actions that need to occur before the handler method gets called.
This method is used to enforce permissions and throttling, and perform content negotiation.</p>
<p>You won't typically need to override this method.</p>
@ -173,10 +176,10 @@ This method is used to enforce permissions and throttling, and perform content n
<p>Any exception thrown by the handler method will be passed to this method, which either returns a <code>Response</code> instance, or re-raises the exception.</p>
<p>The default implementation handles any subclass of <code>rest_framework.exceptions.APIException</code>, as well as Django's <code>Http404</code> and <code>PermissionDenied</code> exceptions, and returns an appropriate error response.</p>
<p>If you need to customize the error responses your API returns you should subclass this method.</p>
<h3 id="initialize_requestself-request-args-kwargs">.initialize_request(self, request, <em>args, </em>*kwargs)</h3>
<h3 id="initialize_requestself-request-42args-kwargs">.initialize_request(self, request, *args, **kwargs)</h3>
<p>Ensures that the request object that is passed to the handler method is an instance of <code>Request</code>, rather than the usual Django <code>HttpRequest</code>.</p>
<p>You won't typically need to override this method.</p>
<h3 id="finalize_responseself-request-response-args-kwargs">.finalize_response(self, request, response, <em>args, </em>*kwargs)</h3>
<h3 id="finalize_responseself-request-response-42args-kwargs">.finalize_response(self, request, response, *args, **kwargs)</h3>
<p>Ensures that any <code>Response</code> object returned from the handler method will be rendered into the correct content type, as determined by the content negotation.</p>
<p>You won't typically need to override this method.</p>
<hr />
@ -189,9 +192,19 @@ This method is used to enforce permissions and throttling, and perform content n
<p><strong>[TODO]</strong></p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -61,6 +61,30 @@ a.github:hover {
text-decoration: none;
}
/* Footer */
/*
.footer p {
text-align: center;
color: gray;
border-top: 1px solid #DDD;
padding-top: 10px;
}
.footer a {
color: gray;
font-weight: bold;
}
.footer a:hover {
color: gray;
}
*/
/* */
body hr {
border-top: 1px dotted #A30000
}
/* Force TOC text to not overrun */
#table-of-contents {
overflow: hidden;

BIN
img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -226,9 +229,19 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -167,9 +170,19 @@
<p>For more advanced customization, such as not having a Bootstrap basis or tighter integration with the rest of your site, you can simply choose not to have <code>api.html</code> extend <code>base.html</code>. Then the page content and capabilities are entirely up to you.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -229,9 +232,19 @@
</ul>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -116,9 +119,19 @@
<p><strong>Describe compat module</strong></p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -165,9 +168,19 @@
</ul>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -114,9 +117,19 @@
</ul>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -135,9 +138,19 @@
<p>Nope. It was at one point intended to support <code>PUT</code> and <code>DELETE</code> forms, but was later <a href="3">dropped from the spec</a>. There remains <a href="4">ongoing discussion</a> about adding support for <code>PUT</code> and <code>DELETE</code>, as well as how to support content types other than form-encoded data.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -130,9 +133,19 @@ the Design of Network-based Software Architectures</a>.</li>
<p>What REST framework doesn't do is give you is machine readable hypermedia formats such as <a href="http://www.amundsen.com/media-types/collection/">Collection+JSON</a> by default, or the ability to auto-magically create HATEOAS style APIs. Doing so would involve making opinionated choices about API design that should really remain outside of the framework's scope.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -129,7 +132,8 @@ pip install djangorestframework
<h2 id="getting-started">Getting started</h2>
<p>Okay, we're ready to get coding.
To get started, let's create a new project to work with.</p>
<pre class="prettyprint lang-py"><code>django-admin.py startproject tutorial
<pre class="prettyprint lang-py"><code>cd ~
django-admin.py startproject tutorial
cd tutorial
</code></pre>
<p>Once that's done we can create an app that we'll use to create a simple Web API.</p>
@ -173,7 +177,7 @@ class Comment(models.Model):
<pre class="prettyprint lang-py"><code>python manage.py syncdb
</code></pre>
<h2 id="creating-a-serializer-class">Creating a Serializer class</h2>
<p>We're going to create a simple Web API that we can use to edit these comment objects with. The first thing we need is a way of serializing and deserializing the objects into representations such as <code>json</code>. We do this by declaring serializers that work very similarly to Django's forms. Create a file in the project named <code>serializers.py</code> and add the following.</p>
<p>We're going to create a simple Web API that we can use to edit these comment objects with. The first thing we need is a way of serializing and deserializing the objects into representations such as <code>json</code>. We do this by declaring serializers that work very similarly to Django's forms. Create a file in the <code>blog</code> directory named <code>serializers.py</code> and add the following.</p>
<pre class="prettyprint lang-py"><code>from blog import models
from rest_framework import serializers
@ -325,9 +329,19 @@ urlpatterns = patterns('blog.views',
<p>We'll see how we can start to improve things in <a href="2-requests-and-responses">part 2 of the tutorial</a>.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -222,9 +225,19 @@ urlpatterns = format_suffix_patterns(urlpatterns)
<p>In <a href="3-class-based-views">tutorial part 3</a>, we'll start using class based views, and see how generic views reduce the amount of code we need to write.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -236,9 +239,19 @@ class CommentInstance(generics.RetrieveUpdateDestroyAPIView):
<p>Next we'll move onto <a href="4-authentication-permissions-and-throttling">part 4 of the tutorial</a>, where we'll take a look at how we can customize the behavior of our views to support a range of authentication, permissions, throttling and other aspects.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -106,9 +109,19 @@
<p>Nothing to see here. Onwards to <a href="5-relationships-and-hyperlinked-apis">part 5</a>.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -112,9 +115,19 @@
<p>Onwards to <a href="6-resource-orientated-projects">part 6</a>.</p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->

View File

@ -2,6 +2,7 @@
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>Django REST framework</title>
<link href="http://tomchristie.github.com/django-rest-framework/img/favicon.ico" rel="icon" type="image/x-icon">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
@ -89,6 +90,8 @@
</div>
</div>
<div id="wrap">
<div class="container-fluid">
<div class="row-fluid">
@ -171,9 +174,19 @@ urlpatterns = router.urlpatterns
<p><strong>Now go build some awesome things.</strong></p>
</div><!--/span-->
</div><!--/row-->
</div><!--/.fluid-container-->
<div id="push"></div>
</div>
<!--
<div class="row footer">
<div class="span12">
<p>Sponsored by <a href="http://dabapps.com/">Dab Apps</a>.</a></p>
</div>
</div>
-->
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->