django rest框架的saas插件
djangorestframework-saas的Python项目详细描述
django rest framework saas plugin
=======
概述
这是django rest framework的saas驱动插件。它提供了一种简单的
方法来分离核心api web服务的客户机定制。目前,这个
初始版本仅支持通过视图集的客户端api路由,同时还支持django rest框架simplerouter的扩展。未来的发行版将
更广泛地覆盖drf的自定义客户端路由功能。
<
<35<35<35<35
``pip install djangorrestrestframeworksaasy`
<35<35<35<35<35<<
-python(2.7)
-django(1.4.2+
-django rest framework(2.3.14+
//<
<<35;示例
define django rest框架设置中的客户机模型:
``python
rest\u settings={
…
"saas":{
"model":"path.to.model.clientmodel"
}
…
}
````
使用saas插件提供的saas客户机mixin,并定义所需的c类方法:
`` python
来自django.db import models
来自rest\u framework\u saasy.client import clientmixin
类client model(models.model,clientmixin):
"client model"
name=models.charfield(最大长度=128)
@staticmethod
def saas\u lookup_field():
"drf saas lookup field definition"
返回"name"
def saas_client_module(self,saas_url_kw,*args,**kwargs):
返回"customizations.{}"。格式(self.name)
```
uired]**
此方法定义在数据库中查找客户机时要使用客户机模型中的哪个字段来验证它们是否存在。
-*saas_client_module**[必需]**
参数:
-*saas_url_kw*-[string]-url关键字参数的值-client
身份验证值。
所有客户机代码都应与核心分离,并且彼此分离。
一个好的做法是,所有客户机特定代码都有一个文件夹,
与核心分离,每个客户机都有一个文件夹。也就是说,你可以强加任何你想要的路径规则。/>——子包
ss命名为*webservice*
**app.subpackage.module**
`` python
从rest_framework导入视图集
从rest_framework导入视图集为saas_视图集_ viewsets.viewsetmixin,viewsets.modelviewset:
queryset=webservicemodel.objects.all()
serializer\u class=webserviceseserializer
````
**customizations.client.app.subpackage.module**
``python
/>类WebService(CoreWebService):
客户机自定义
```
-
核心中的类名*webservice*必须在客户机自定义模块中定义相同。
/>——定制
/>}子包
子包 app
子包
module.py
````
但是,saas视图集有一个可定义的可选方法,*saas\u module*
这将返回应在客户端包中使用的路径。**必须用staticmethod decorator定义它。**让我们稍微改变一下上面的*webservice*示例:
``python
类webservice(saas-viewsets.viewsetmixin,viewsets.modelviewset):
…
@staticmethod
def saas-u module():
return"other.package.name"
```
r/>app
可以随时访问url关键字参数中有效标识符的值。如果没有使用特定于客户端的路由,*saas_u url_u kw*
默认为无。
\saas simplerouter
从.views导入noteviewset
router=routers.simplerouter()
router.register(r'notes,noteviewset)
`````
>将立即提供客户端特定的路由:
````
^notes/$[name="note-list"]
^notes/(?p<;pk>;[^/]+)/$[名称='note-detail']
^(?)p<;saas_url_kw>;)/notes/$[名称='note-list']
^(?)p<;SaaS_URL_kw>;*)/notes/(?p<;pk>;[^/]+)/$[name='note-detail']
```
**注意:**如果提供了客户机关键字参数,但客户机无法从具有给定标识符的数据库中检索到
,
插件将只返回404。
许可证
==
mit许可证(mit)
版权所有(c)2014 Juan Gutierrez
y、修改、合并、发布、分发、再授权和/或出售软件的
副本,并允许向其提供软件的人这样做,但须满足以下条件:
软件的重要部分。
软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于适销性保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或
软件的使用或其他交易引起的或与之相关的。
=======
概述
这是django rest framework的saas驱动插件。它提供了一种简单的
方法来分离核心api web服务的客户机定制。目前,这个
初始版本仅支持通过视图集的客户端api路由,同时还支持django rest框架simplerouter的扩展。未来的发行版将
更广泛地覆盖drf的自定义客户端路由功能。
<
<35<35<35<35
``pip install djangorrestrestframeworksaasy`
<35<35<35<35<35<<
-python(2.7)
-django(1.4.2+
-django rest framework(2.3.14+
//<
<<35;示例
define django rest框架设置中的客户机模型:
``python
rest\u settings={
…
"saas":{
"model":"path.to.model.clientmodel"
}
…
}
````
使用saas插件提供的saas客户机mixin,并定义所需的c类方法:
`` python
来自django.db import models
来自rest\u framework\u saasy.client import clientmixin
类client model(models.model,clientmixin):
"client model"
name=models.charfield(最大长度=128)
@staticmethod
def saas\u lookup_field():
"drf saas lookup field definition"
返回"name"
def saas_client_module(self,saas_url_kw,*args,**kwargs):
返回"customizations.{}"。格式(self.name)
```
uired]**
此方法定义在数据库中查找客户机时要使用客户机模型中的哪个字段来验证它们是否存在。
-*saas_client_module**[必需]**
参数:
-*saas_url_kw*-[string]-url关键字参数的值-client
身份验证值。
所有客户机代码都应与核心分离,并且彼此分离。
一个好的做法是,所有客户机特定代码都有一个文件夹,
与核心分离,每个客户机都有一个文件夹。也就是说,你可以强加任何你想要的路径规则。/>——子包
ss命名为*webservice*
**app.subpackage.module**
`` python
从rest_framework导入视图集
从rest_framework导入视图集为saas_视图集_ viewsets.viewsetmixin,viewsets.modelviewset:
queryset=webservicemodel.objects.all()
serializer\u class=webserviceseserializer
````
**customizations.client.app.subpackage.module**
``python
/>类WebService(CoreWebService):
客户机自定义
```
-
核心中的类名*webservice*必须在客户机自定义模块中定义相同。
/>——定制
/>}子包
子包
子包
module.py
````
但是,saas视图集有一个可定义的可选方法,*saas\u module*
这将返回应在客户端包中使用的路径。**必须用staticmethod decorator定义它。**让我们稍微改变一下上面的*webservice*示例:
``python
类webservice(saas-viewsets.viewsetmixin,viewsets.modelviewset):
…
@staticmethod
def saas-u module():
return"other.package.name"
```
r/>app
可以随时访问url关键字参数中有效标识符的值。如果没有使用特定于客户端的路由,*saas_u url_u kw*
默认为无。
\saas simplerouter
从.views导入noteviewset
router=routers.simplerouter()
router.register(r'notes,noteviewset)
`````
>将立即提供客户端特定的路由:
````
^notes/$[name="note-list"]
^notes/(?p<;pk>;[^/]+)/$[名称='note-detail']
^(?)p<;saas_url_kw>;)/notes/$[名称='note-list']
^(?)p<;SaaS_URL_kw>;*)/notes/(?p<;pk>;[^/]+)/$[name='note-detail']
```
**注意:**如果提供了客户机关键字参数,但客户机无法从具有给定标识符的数据库中检索到
,
插件将只返回404。
许可证
==
mit许可证(mit)
版权所有(c)2014 Juan Gutierrez
y、修改、合并、发布、分发、再授权和/或出售软件的
副本,并允许向其提供软件的人这样做,但须满足以下条件:
软件的重要部分。
软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于适销性保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或
软件的使用或其他交易引起的或与之相关的。