目前我有一个Django项目,我们称之为Backend。有一个文件夹api,我在那里使用Django-Tastypie声明了这个资源:
from django.contrib.auth.models import User
from tastypie.resources import ModelResource, ALL
from tastypie.authentication import BasicAuthentication
from tastypie.authorization import DjangoAuthorization
from tastypie.cache import SimpleCache
from tastypie.throttle import CacheDBThrottle
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
excludes = ['email', 'password', 'is_staff', 'is_superuser']
authentication = BasicAuthentication()
authorization = DjangoAuthorization()
cache = SimpleCache()
throttle = CacheDBThrottle()
filtering = {
'username' : ALL,
'date_joined' : ['gt','lt','gte','lte','range']
}
如果有适当的路由规则,如果我访问http://127.0.0.1:8000/api/v1/user?format=json
之类的网址,我应该以json格式获取有关用户的一些信息,但是来自我的本地数据库。我不想使用任何本地数据库,除了可能用于测试一些虚拟数据。我希望这样的get请求能够通过我登录的会话的用户名和密码向某个远程服务器发出SOAP请求。
我已经拥有一个独立的Python应用程序,我可以使用SUDS和预先下载的WSDL文件执行SOAP请求并获取SOAP响应。现在我希望以这种方式在我的Dhango项目中包含此功能,我在项目中更改settings.py中的设置,但我不必修改项目中的应用程序。
答案 0 :(得分:1)
您可以定义自己使用独立Python应用程序的Custom managers。
答案 1 :(得分:0)
来自tastypie documentation。将此代码添加到您的urls.py应该有效:
from tastypie.api import Api
from my_app.api.resources import UserResource
v1_api = Api(api_name='v1')
v1_api.register(UserResource())
#old urlpatterns here
urlpatterns += patterns('',
(r'^api/', include(v1_api.urls)),
)