- 7 Tem 2013
- 8,263
- 4
- 744
Project Setup
Either follow along below to create your sample Project or clone the repo from Github.
Create a new project directory, create and activate a virtualenv, install Django and the required dependencies:
Create a basic Django Project and App:
Make sure to add the app to your INSTALLED_APPS section in settings.py:
Add support for SQLite (or your RDBMS of choice) in settings.py:
Update your models.py file:
Create the migrations:
Now migrate them:
Fire up the Django Shell and populate the database:
Exit the shell when done.
Tastypie Setup
Create a new file in your App called api.py.
Update urls.py:
Fire Away!
Well, we can filter the objects by title. Try out various keywords:
//this post is quoted
Either follow along below to create your sample Project or clone the repo from Github.
Create a new project directory, create and activate a virtualenv, install Django and the required dependencies:
Kod:
$ mkdir django-tastypie-tutorial $ cd django-tastypie-tutorial $ pyvenv-3.5 env $ source env/bin/activate $ pip install Django==1.9.7 $ pip install django-tastypie==0.13.3 $ pip install defusedxml==0.4.1 $ pip install lxml==3.6.0
Create a basic Django Project and App:
Kod:
$ django-admin.py startproject django19 $ cd django19 $ python manage.py startapp whatever
Make sure to add the app to your INSTALLED_APPS section in settings.py:
Kod:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'whatever', ]
Kod:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'test.db'), } }
Kod:
from django.db import models class Whatever(models.Model): title = models.CharField(max_length=200) body = models.TextField() created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
Kod:
$ python manage.py makemigrations
Kod:
$ python manage.py migrate --fake-initial
Note: The fake-initial optional argument is required if you have to troubleshoot the existing migrations. Omit if no migrations exist.
Kod:
$ python manage.py shell >>> from whatever.models import Whatever >>> w = Whatever(title="What Am I Good At?", body="What am I good at? What is my talent? What makes me stand out? These are the questions we ask ourselves over and over again and somehow can not seem to come up with the perfect answer. This is because we are blinded, we are blinded by our own bias on who we are and what we should be. But discovering the answers to these questions is crucial in branding yourself.") >>> w.save() >>> w = Whatever(title="Charting Best Practices: Proper Data Visualization", body="Charting data and determining business progress is an important part of measuring success. From recording financial statistics to webpage visitor tracking, finding the best practices for charting your data is vastly important for your companys success. Here is a look at five charting best practices for optimal data visualization and analysis.") >>> w.save() >>> w = Whatever(title="Understand Your Support System Better With Sentiment Analysis", body="Theres more to evaluating success than monitoring your bottom line. While analyzing your support system on a macro level helps to ensure your costs are going down and earnings are rising, taking a micro approach to your business gives you a thorough appreciation of your business performance. Sentiment analysis helps you to clearly see whether your business practices are leading to higher customer satisfaction, or if youre on the verge of running clients away.") >>> w.save()
Tastypie Setup
Create a new file in your App called api.py.
Kod:
from tastypie.resources import ModelResource from tastypie.constants import ALL from whatever.models import Whatever class WhateverResource(ModelResource): class ****: queryset = Whatever.objects.all() resource_name = 'whatever' filtering = {'title': ALL}
Kod:
from django.conf.urls import url, include from django.contrib import admin from django19.api import WhateverResource whatever_resource = WhateverResource() urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^api/', include(whatever_resource.urls)), ]
- Fire up the server.
- Navigate to http://localhost:8000/api/whatever/?format=json to get the data in JSON format
- Navigate to http://localhost:8000/api/whatever/?format=xml to get the data in XML format
Kod:
filtering = {'title': ALL}
- http://localhost:8000/api/whatever/?format=json&title__contains=what
- http://localhost:8000/api/whatever/?format=json&title__contains=test
//this post is quoted