Welcome to Tastypie!¶
Tastypie is an webservice API framework for Django. It provides a convenient, yet powerful and highly customizable, abstraction for creating REST-style interfaces.
Getting Help¶
There are two primary ways of getting help. We have a mailing list hosted at Google (http://groups.google.com/group/django-tastypie/) and an IRC channel (#tastypie on irc.freenode.net) to get help, want to bounce idea or generally shoot the breeze.
Quick Start¶
Add
tastypie
toINSTALLED_APPS
.Create an
api
directory in your app with a bare__init__.py
.Create an
<my_app>/api/resources.py
file and place the following in it:from tastypie.resources import ModelResource from my_app.models import MyModel class MyModelResource(ModelResource): class Meta: queryset = MyModel.objects.all() allowed_methods = ['get']
In your root URLconf, add the following code (around where the admin code might be):
from tastypie.api import Api from my_app.api.resources import MyModelResource v1_api = Api(api_name='v1') v1_api.register(MyModelResource()) urlpatterns = patterns('', # ...more URLconf bits here... # Then add: (r'^api/', include(v1_api.urls)), )
Hit http://localhost:8000/api/v1/?format=json in your browser!
Requirements¶
Tastypie requires the following modules. If you use Pip, you can install
the necessary bits via the included requirements.txt
:
- Python 2.4+
- Django 1.0+
- mimeparse 0.1.3+ (http://code.google.com/p/mimeparse/)
- Older versions will work, but their behavior on JSON/JSONP is a touch wonky.
- dateutil (http://labix.org/python-dateutil)
- lxml (http://codespeak.net/lxml/) if using the XML serializer
- pyyaml (http://pyyaml.org/) if using the YAML serializer
If you choose to use Python 2.4, be warned that you will also need to grab the following modules:
- uuid (present in 2.5+, downloadable from http://pypi.python.org/pypi/uuid/) if using the
ApiKey
authentication