tastypie is a good thing.

Haven't test it thoroughly. Gonna need some provement.

Now I will introduct how to use tastepie for newbies.

Let me introduce all the equipments I have to deploy tastypie.

1) linuxmint 13

2) virtualenv ( sudo apt-get install python-virtualenv )

3) install django==1.5 in the virtualenv folder ( ./bin/pip install django==1.5 )

4) install django-tastypie (./bin/pip install django-tastypie )

5) create new project ( ./bin/djangoadmin.py startproject ts2 )

6) get into the 'ts2' folder ( cd ts2 )

7) create new app (../bin/djangoadmin.py startapp myapp    NOTICE: folder myapp is at the same folder level as manage.py )

8) edit file    ts2/myapp/models.py as following,

from tastypie.utils.timezone import now
from django.contrib.auth.models import User
from django.db import models
from django.template.defaultfilters import slugify class Entry(models.Model):
user = models.ForeignKey(User)
pub_date = models.DateTimeField(default=now)
title = models.CharField(max_length=200)
slug = models.SlugField()
body = models.TextField() def __unicode__(self):
return self.title def save(self, *args, **kwargs):
# For automatic slug generation.
if not self.slug:
self.slug = slugify(self.title)[:50] return super(Entry, self).save(*args, **kwargs)

9) create ts2/myapp/api.py like this,

# myapp/api.py
from tastypie.resources import ModelResource
from models import Entry # Here i corrected it. the docs from tastypieapi.org is
                     #\ wrong that from myapp.models import Entry class EntryResource(ModelResource):
class Meta:
queryset = Entry.objects.all()
resource_name = 'entry'

10) add 2 rows in the ts2/ts2/settings.py as this,

add 'tastypie' and 'myapp' in the INSTALLED_APPS ,

11) edit ts2/ts2/urls.py ,

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover
from myapp.api import EntryResource
entry_resource = EntryResource() urlpatterns = patterns('',
# Examples:
# url(r'^$', 'ts2.views.home', name='home'),
# url(r'^ts2/', include('ts2.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
# The normal jazz here...
#(r'^blog/', include('myapp.urls')),
(r'^api/', include(entry_resource.urls)),
)

12) initialize database , forms, and data ( ../bin/python manage.py syncdb )

File struture of this project:

ts2/
|-- db.sqlite3
|-- manage.py
|-- myapp
| |-- api.py
| |-- __init__.py
| |-- models.py
| |-- tests.py
| `-- views.py
`-- ts2
|-- __init__.py
|-- settings.py
|-- urls.py
|-- wsgi.py

13) run server ( ../bin/python manage runserver )

go to http://localhost:8000/api/entry/?format=json

Now you will see this:

This help you to read JSON ! :)

http://json.parser.online.fr/

Isn't good? :P

Before awaring of tastypie, I used orignal JSON parser and 3rd party ORM to do things like REST application works.

I have also heard of django-gap which is more lighter than tastypie.

Gonna have a comparison if possible. :)

Happy Coding!

tastypie Django REST framework API [Hello JSON]的更多相关文章

  1. Django Rest Framework API指南

    Django Rest Framework API指南 Django Rest Framework 所有API如下: Request 请求 Response 响应 View 视图 Generic vi ...

  2. Django REST Framework API Guide 06

    本节大纲 1.Validators 2.Authentication Validators 在REST框架中处理验证的大多数时间,您将仅仅依赖于缺省字段验证,或在序列化器或字段类上编写显式验证方法.但 ...

  3. Django REST Framework API Guide 01

    之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都 ...

  4. Django REST Framework API Guide 04

    本节大纲 1.serializers 1.Serializers Serializers允许复杂的数据,像queryset和模型实例转换成源生的Python数据类型.从而可以更简单的被渲染成JSON, ...

  5. Django REST Framework API Guide 03

    本节大纲 1.Routers 2.Parsers 3.Renderers Routers Usage from rest_framework import routers router = route ...

  6. tastypie Django REST framework

    Its one of the primary authors' lecture on pyCon: http://www.youtube.com/watch?v=Zv26xHYlc8s&nor ...

  7. Django REST Framework API Guide 02

    本节大纲 1.Generic Views 2.ViewSets  1.Generic Views CBV的主要的一个优点就是极大的允许了对于代码的从用.自然,rest framework取其优势,提供 ...

  8. Django REST framework API开发

    RESTful设计方法 1. 域名 应该尽量将API部署在专用域名之下. https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下. https:/ ...

  9. Django REST Framework API Guide 08

    1.Filtering 2.Pagination FIltering GenericAPIView的子类筛选queryset的简单方法是重写.get_quueryset()方法. 1.根据当前用户进行 ...

随机推荐

  1. oracle 电子商务解决方案讲义

    1. 电商营销(CRM) - 高端客户体验 2. 当当网李国庆做 "千千面"购物体验 3. 所使用的唯一的产品oracle的CRM 4. 个人的事情.谁在世界上是用户体验. 5. ...

  2. 第39届ACM亚洲区域赛牡丹江赛区赛后总结

    2014年10月10日,周五,早晨匆匆忙忙的出了寝室,直奔复印社去打了两份模板,然后直接就去上课了.第三节课下课,直接跟老师讲了一声,就去实验室跟学长们汇合了.12点半,踏上了开往牡丹江的列车,我们那 ...

  3. 如何实现TWaver 3D颜色渐变

    一般而言,须要实现3D物体的渐变,通常的思路就是通过2D绘制一张渐变canvas图片作为3D对象的贴图.这样的方式是能够解决这类问题的.只是对于一般用户而言,通过2D生成一张渐变的图片.有一定的难度, ...

  4. Java 之Integer相等比较

    1.问题提出 今天在和同事讨论问题的时候,无意间谈到了Integer对象的比较,先看下代码: package test; public class IntegerEqual { /** * @para ...

  5. C和Java中数组的定义

    在学习C和Java中,关于数组的定义两者不同,在初学的时候,容易产生混淆,现在将两者对比下. 1.初始化 在C语言中,关于一维数组的定义: 完全初始化  int a[5]={1,2,3,4,5},对于 ...

  6. 命令行配置源和安装本地rpm包

    因为Firefox的在写博客时提交代码会丢失缩进,所以打算安装Chrome来写博,还不错,学到了两条命令- [shell] sudo yum-config-manager --add-repo=htt ...

  7. CentOS上部署Apache、MySQL和PHP

    centos上yum安装很方便,下面介绍编译安装的方式. 第一步要在CentOS上安装gcc.g++等开发工具 可以从系统光盘上安装,或者 #yum groupinstall "Develo ...

  8. UVA Graph Coloring

    主题如以下: Graph Coloring  You are to write a program that tries to find an optimal coloring for agiven ...

  9. leetcode[60] Rotate List

    题目:给定链表,和一个k,把链表的后k个旋转到前头,例如链表为: 1->2->3->4->5->NULL and k = 2, return 4->5->1- ...

  10. TodoList开发笔记 – PartⅠ

    做了一年多的桌面软件,最近开始转向Web方面的开发,既然比较熟悉Net那么首当其冲就是学习ASP.Net,以及HTML.CSS.Javascript. 为了检验这个把星期来的学习成果,着手做了一个To ...