小编chr*_*hle的帖子

Django REST Framework中的嵌套URL模式

我试图超越Django REST Frameworks初始的平面URL模式.例如,如果我有对象类型parentobject和childobject,其中parentobject有子对象,则开箱即用的REST如下所示.

^ ^api/ ^ ^parentobject/$ [name='parentobject-list']
^ ^api/ ^ ^parentobject/\.(?P<format>[a-z]+)$ [name='parentobject-list']
^ ^api/ ^ ^parentobject/(?P<pk>[^/]+)/$ [name='parentobject-detail']
^ ^api/ ^ ^parentobject/(?P<pk>[^/]+)/\.(?P<format>[a-z]+)$ [name='parentobject-detail']
^ ^api/ ^ ^childobject/$ [name='childobject-list']
^ ^api/ ^ ^childobject/\.(?P<format>[a-z]+)$ [name='childobject-list']
^ ^api/ ^ ^childobject/(?P<pk>[^/]+)/$ [name='childobject-detail']
^ ^api/ ^ ^childobject/(?P<pk>[^/]+)/\.(?P<format>[a-z]+)$ [name='childobject-detail']
Run Code Online (Sandbox Code Playgroud)

在父对象响应中,将引用childobject(s)id.

GET /api/parentobject/1/

(results in)
{
    "childobject": [123, 456, 789]
}
Run Code Online (Sandbox Code Playgroud)

如果需要有关子对象(或db中所有子对象)的详细信息,可以引用childobject api.

/api/childobject/
/api/childobject/123/
Run Code Online (Sandbox Code Playgroud)

还在同一页上?:)

我想要做的是创建一个通用/可扩展的方式通过父对象api引用子m2m关系,而不必拉动id,然后重新查询childobject api.

/api/parentobject/1/childobject/

[
    {
        "childobject_prop": 1
        ...etc
    }
]
Run Code Online (Sandbox Code Playgroud)

所以上面的内容将是基于Django管理的m2m到tablem中的父对象引用进行过滤的.

我的想法是,这将是通用的,我可以定义一个新的通过关系,并具有这种能力与最小的工作.例如,网址模式将自动等.

此外,任何降序关系都将以相同的方式处理.这样下面的"someotherchildobject"将返回映射到子对象'123'的一些其他对象的列表,这些对象映射到父对象'1'.

/api/parentobject/1/childobject/123/someotherchildobject/
Run Code Online (Sandbox Code Playgroud)

如果这还不够清楚,请告诉我.到目前为止,我的成功是有限的.我不想修改Django REST来实现这一点,同时我不想通过将我感兴趣的特定内容添加到urlpatterns来"手动"构建URL模式.

另外,作为奖励,我想通过= Django中的表来应用于CUSTOM; 并将直通表上的任何其他字段映射到返回数据中与此类似的字段. …

django rest django-rest-framework

8
推荐指数
1
解决办法
5842
查看次数

将SparkSQL HiveServer连接到Cassandra?

所以我正在使用Tableau,Spark 1.2和Cassandra 2.1.2.我成功地做了很多事情.

我在这一点上的主要差距是,如何正确配置Spark 1.2 ThriftServer以便能够与我的Cassandra实例通信?最终目标是通过Tableau运行SparkSQL(需要ThriftServer).我能够在没有问题的情况下启动ThriftServer(主要是)我可以在示例中运行beeline并执行"show tables"调用.但正如您在下面看到的,它会产生一个0长度的表列表.

beeline> !connect jdbc:hive2://192.168.56.115:10000
scan complete in 2ms
Connecting to jdbc:hive2://192.168.56.115:10000
Enter username for jdbc:hive2://192.168.56.115:10000: 
Enter password for jdbc:hive2://192.168.56.115:10000: 
log4j:WARN No appenders could be found for logger (org.apache.thrift.transport.TSaslTransport).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Connected to: Spark SQL (version 1.2.0)
Driver: null (version null)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://192.168.56.115:10000> show tables;
+---------+
| result  |
+---------+ …
Run Code Online (Sandbox Code Playgroud)

hive thrift cassandra tableau-api apache-spark

6
推荐指数
1
解决办法
814
查看次数