Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django中的CakePHP数据源_Django_Api_Cakephp_Resources_Datasource - Fatal编程技术网

Django中的CakePHP数据源

Django中的CakePHP数据源,django,api,cakephp,resources,datasource,Django,Api,Cakephp,Resources,Datasource,我已经在几个应用程序中使用了CakePHP,现在我正在Django中构建我的第一个应用程序 在CakePHP中,a是模型和数据源之间的链接。它可能依赖于ORM,也可能从外部源(如API)访问数据 我试图弄清楚如何在Django中对非ORM数据源(默认情况下是模型)执行同样的操作,以便使用外部API 如果你能给我指出正确的方法,我将不胜感激 谢谢大家! 这个概念在django和cake之间并不匹配。在django中,模型是显式映射到数据库的ORM。虽然我认为您可以编写一个违反该规则的自定义后端,但

我已经在几个应用程序中使用了CakePHP,现在我正在Django中构建我的第一个应用程序

在CakePHP中,a是模型和数据源之间的链接。它可能依赖于ORM,也可能从外部源(如API)访问数据

我试图弄清楚如何在Django中对非ORM数据源(默认情况下是模型)执行同样的操作,以便使用外部API

如果你能给我指出正确的方法,我将不胜感激


谢谢大家!

这个概念在django和cake之间并不匹配。在django中,模型是显式映射到数据库的ORM。虽然我认为您可以编写一个违反该规则的自定义后端,但这似乎很痛苦

但是,有许多使用非传统数据库源的示例,例如将mongo文档与django一起使用。如果您对python有深入的了解,那么设计一个基类来处理将API封装到对象实例中所需的所有细节将相对容易。但在django,这不会是现成的东西。可能有第三方应用程序提供了这一功能,但我不知道有一个是在我脑海中。与在cake中执行的方式相比,自己执行并不复杂,即在cake中,非数据库数据源需要代码来发出请求并解析响应,因此它不只是神奇地知道如何处理任何API


如果您不想结束调用api的所有行为并构造一个模型样式类来包含所有这些逻辑,那么在django中处理这些行为的正常方法就是使用urllib2(如果这是一个远程api源)并解析请求的结果。

谢谢John的回答!实际上,我已经有了一个模块来包装与API的通信。我正在将我的模块导入到视图中,并在视图中向模板发送所需的数据。然而,我认为应该有一种更好的/标准的方法来实现这一点……例如,如果我需要编写API,我应该如何定义我的表单?好吧,你不会有ModelForms提供的好东西(除非你再次为API后端重新实现逻辑)。但是,您可以简单地使用普通表单并从视图代码中处理对API的写入……或者更好的是,在表单中添加一个处理写入的方法。您甚至可以创建一个继承自表单的类,但实现类似于
def write()
的东西,并且who's init接受url。然后
write()
在清理的数据上循环,并以非常通用的方式正确地发布数据。