转自:http://blog.csdn.net/yima1006/article/details/9000588
Tastpie官网:http://tastypieapi.org/
Tastypie简介
1.1 什么是tastypie?
Tastypie是Django框架的一个webservice接口。它提供了一个方便、强大而且高定制化的REST风格接口。
Tastypie非常容易显示您的模型,但也能完全让你控制你所期望得到的信息。只要你需要,能让你远离抽象的数据库。Tastypie也能让你非常容易的集成非ORM的数据源。
Tastypie is BSD licensed & plays nicely with third-party apps without needing to modify their sources.
1.2 特点:
- 支持GET/POST/PUT/DELETE/PATCH方式调用
- 合理的预设值
- 设计起来方便扩展
- 支持多种序列化的格式(JSON/XML/YMAL/bplist)
- HATEOAS by default
- 方便测试、文档完整
1.3 怎样开始
1) PIP安装: pip install django-tasypie
2) 添加到APP: INSTALLED_APPS += ['tastypie’]
3) 同步数据库:manage.py syncdb
4) 创建你自己的资源
5) 配置到urlconf中
2 快速开始
2.1 添加tastypie到INSTALLED_APPS
2.2 创建一个含有空__init__.py的api目录在你的APP中
2.3 创建一个<my_app>/api/resources.py文件,并将下面一段代码放置其中
- from tastypie.resources import ModelResource
- from my_app.models import MyModel
- class MyModelResource(ModelResource):
- class Meta:
- queryset = MyModel.objects.all()
- allowed_methods = ['get']
2.4 在的根URLconf,添加如下代码(在admin代码附近):
- 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)),
- )
2.5 在浏览器中访问:http://localhost:8000/api/v1/?format=json
3相关包依赖
Tastypie需要如下一些模块。通过PIP就可以很轻松的安装。
3.1 必须安装包
1) Python2.6+
2) Django1.3+
3) Mimeparse0.1.3+ (http://code.google.com/p/mimeparse/)【备注:老的版本也了可以工作,但是对JSON/JSONP的支持不够友好】
4) Dateutil(http://labix.org/python-dateutil ) >= 1.5, < 2.0
3.2 可选包
1) Python_digest (https://bitbucket.org/akoha/python-digest/)
2) Lxml(http://lxml.de/ ) 用于xml解析
3) Pymaml (http://pyyaml.org/ ) 用于YAML解析
4) Biplist (http://explorapp.com/biplist/ ) 用于binary plist解析
3.3 Tastypie特点
1) RESTful风格的API和HTTP支持
2) 支持深层次的关系
3) 在输入结果时不需要自己实现序列化操作
4) 神奇的API框架,非常灵活的解决问题
5) 对XML的序列化跟JSON一样方便
3.4 运行与测试
1) 最方便的方法获得Tastypie的测试如下:
- $ git clone https://github.com/toastdriven/django-tastypie.git
- $ cd django-tastypie
- $ virtualenv env
- $ . env/bin/activate
- $ ./env/bin/pip install -U -r requirements.txt
2) 运行测试举例如下:
- # From the same directory as above:
- $ ./env/bin/pip install -U -r tests/requirements.txt
- $ cd tests
- $ ./run_all_test.sh