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、修改、合并、发布、分发、再授权和/或出售软件的
副本,并允许向其提供软件的人这样做,但须满足以下条件:

软件的重要部分。

软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于适销性保证,
适用于特定目的和不侵权。在任何情况下,
作者或版权持有人均不对任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或
软件的使用或其他交易引起的或与之相关的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用applets查询的多人java游戏?   java如何基于字符串生成数组   基于java多边形的路径查找   java如何对多列ArrayList排序   java批处理更新从更新中返回了意外的行数(Spring/Hibernate)   java如何使用SeleniumWebDriver列出<tr>标记内的所有<td>   java如何使用SimpleFlatMapper将前缀为CSV的列别名到映射?   java为什么通过eclipse运行/调试TomCat时会出现ClassNotFoundException   java Android滚动视图上次视图未显示内部线性布局   替换字符串中不带空格的字符序列   调用方法时Java Swing GUI冻结   java是否允许/建议重用收集器?   在同步方法中使用java hashmap迭代器时   在java XMLDecoder XMLEncoder中写入XMLdatabase   java I无法在活动的片段中填充recyclerview   java Jitsi在调用过程中播放WAV文件如果可能,与音频混合   java JPA为什么我看到DB中每行有两个实体实例?