Django的灵活且功能强大的API层。
项目描述
自2010年以来为Django应用创建美味的API。
目前处于测试版(v0.9.14),但在几个网站上正在积极用于生产。
需求
核心
Python 2.6+ 或 Python 3.3+
Django 1.5+
dateutil (http://labix.org/python-dateutil) >= 2.1
格式支持
XML:lxml 3 (http://lxml.de/) 和 defusedxml (https://pypi.python.org/pypi/defusedxml)
YAML:pyyaml (http://pyyaml.org/)
二进制plist:biplist (http://explorapp.com/biplist/)
可选
HTTP摘要认证:python3-digest (https://bitbucket.org/akoha/python-digest/)
它看起来像什么?
一个基本的例子看起来像
# myapp/api.py # ============ from tastypie.resources import ModelResource from myapp.models import Entry class EntryResource(ModelResource): class Meta: queryset = Entry.objects.all() # urls.py # ======= from django.conf.urls.defaults import * from tastypie.api import Api from myapp.api import EntryResource v1_api = Api(api_name='v1') v1_api.register(EntryResource()) urlpatterns = patterns('', # The normal jazz here then... (r'^api/', include(v1_api.urls)), )
这为您提供了对Entry模型的完全工作、读写API,支持以RESTful方式执行所有CRUD操作。JSON/XML/YAML支持已经存在,并且很容易添加相关数据/身份验证/缓存。
您可以在http://django-tastypie.readthedocs.org/的文档中找到更多信息。
为什么选择Tastypie?
其他Django中还有其他更知名的API框架。您需要评估可用的选项并自行决定。话虽如此,以下是一些选择Tastypie的常见原因。
您需要一个既RESTful又很好地使用HTTP的API。
您希望支持深层关系。
您不希望不得不编写自己的序列化器来生成正确的输出。
您需要一个魔法少、非常灵活且与问题域映射良好的API框架。
您需要/想要与JSON(YAML也在其中)同等对待的XML序列化。
您想要支持我感知到的NIH综合症,这更多是关于帮助朋友/同事,而不是NIH本身。
参考资料
安全性
Tastypie致力于提供灵活且安全的API,并考虑到许多安全特性和选项而设计。由于API的复杂性和不断发现新的攻击向量和安全漏洞,没有任何软件可以免疫安全漏洞。我们依赖我们的社区来报告并帮助我们调查安全问题。
如果您发现一个安全漏洞,请勿在Github上创建问题。相反,请给我们发送电子邮件至 tastypie-security@googlegroups.com
然后我们将一起调查并解决问题,以便我们可以宣布解决方案以及漏洞。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
django-tastypie-migrate-fix-0.10.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e3554e430a68fc868f3cd55e363e032316a72d5035c75f4afde9c8d45831c2f5 |
|
MD5 | 13ffcbd302b50790d923f1bc0e13f089 |
|
BLAKE2b-256 | 540fe0f37f335e3bac7f2ee8dafb7f6035a0e8bf59d90b3763d2d4f904723ea9 |