剛剛用Django TastyPie開始使用JSON公開數據。 試圖把使用tastypie.Api資源一起urls.py
tastypie註冊問題
在 http://django-tastypie.readthedocs.org/en/latest/tutorial.html#creating-resources 不開箱的工作給出的例子。
我urls.py
項:
#now for the api
from tserver.api import PurchaseResource,DataResource
#combine several APIs
from tastypie.api import Api
api = Api(api_name='')
api.register(PurchaseResource(),canonical=True)
api.register(DataResource(),canonical=True)
urlpatterns = patterns('', (r'^api/',include(api.urls)),
)
和api.py
:
#!/bin/env python
from tastypie.resources import ModelResource
from tastypie import fields
from tserver.models import Purchase,Data
class DataResource(ModelResource):
class Meta:
queryset = Data.objects.all()
class PurchaseResource(ModelResource):
Info = fields.ForeignKey(DataResource,'data')
class Meta:
queryset = Purchase.objects.all()
resource_name = 'purchase'
和models.py
:
class Data(models.Model):
tagID = models.CharField(max_length=40)
dtime = models.DateTimeField()
vcardf = models.CharField(max_length = 600)
class Purchase(models.Model):
Info = models.ForeignKey('Data',unique=True)
payment_method = models.CharField(max_length=20,choices=PAYMENT_METHOD)
TotalAmount = models.DecimalField(max_digits = 20, decimal_places=2)
TotalDiscount = models.DecimalField(max_digits = 20, decimal_places=2)
valid_upto = models.DateTimeField()
最後當我嘗試一下,錯誤:
個http://localhost:8000/api/data/1/?format=json
結果:
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/api/data/1/?format=json
Using the URLconf Django tried these URL patterns, in this order:
^admin/
^(?P<api_name>)/$ [name='api__top_level']
^(?P<api_name>)/
^(?P<api_name>)/
The current URL, api/data/1/, didn't match any of these.
但這個問題是不存在的,如果我只是在urls.py
使用:
urlpatterns = patterns('', (r'^api/',include(DataResoure().urls)),
)
什麼是這裏的問題,當我們試圖用api.register(...)
綁在一起的東西呢?
感謝您的意見。你有什麼樣的問題,你面對tastypie?是安全漏洞還是性能問題?請您詳細說明......這將有助於我做出決定......並可幫助其他想要使用此功能的人。 – user1102171 2012-01-02 14:09:13
性能問題很重要,序列化非常慢。節省大量的模型是非常密集的數據庫。 發送模型的PUT和POST可能會導致數據丟失。 使用相關模型(ForeignKey和M2M)很麻煩。沒有代碼重複,很難禁止保存相關模型。 嵌套資源很難使用。 開箱即不支持文件上傳。 創建多個模型時根本不返回位置標題。 可能我忘記了一些東西。 – Ilya 2012-01-03 12:06:19
我回答你的問題嗎? – Ilya 2012-01-05 00:40:01