Django、休息和角度路线

Django、休息和角度路线,django,rest,angularjs,routes,Django,Rest,Angularjs,Routes,我正试图将AngularJS这样的客户端框架与Django结合起来。有一件事让我很困惑,那就是路线和休息的问题 我一直试图在网上阅读很多关于它的文章,但是文档是有限的,特别是在Django与Angular(这里或那里的小片段)的结合方面。我知道我需要添加一个REST框架,比如TastyPie,在我的应用程序中创建一个健壮的REST接口,以便Angular能够插入并获取资源 但是,我不知道如何正确地映射我的路由,以便(1)我的服务器端应用程序可以使用角度插件呈现我的单页应用程序(SPA)(2)应该

我正试图将AngularJS这样的客户端框架与Django结合起来。有一件事让我很困惑,那就是路线和休息的问题

我一直试图在网上阅读很多关于它的文章,但是文档是有限的,特别是在Django与Angular(这里或那里的小片段)的结合方面。我知道我需要添加一个REST框架,比如TastyPie,在我的应用程序中创建一个健壮的REST接口,以便Angular能够插入并获取资源

但是,我不知道如何正确地映射我的路由,以便(1)我的服务器端应用程序可以使用角度插件呈现我的单页应用程序(SPA)(2)应该加载信息/呈现模板(角度)并从服务器检索数据(django)的路由不冲突。比如,如果我有人在我的网站上做site.com/user/1234-该路由与Angular路由和Django路由都关联-除了一个呈现模板,另一个根据从DB/服务器检索到的内容吐出JSON


此外,通过使用RESTAPI,我是否放弃了在使ModelForms与模型同步等方面的许多优势?有没有办法让AngularJS保持这种状态,或者我需要找一个AngularJS的替代者

这个问题并不是针对Django的,只是理解SPA中后端和前端之间的关系

在后端和前端之间不会复制路由。您的Django路线应设置为:

/api/foo
/api/bar
...
和一个单一的路线,提供了一个单一的网页完整的HTML部分,例如

/
其余路线将以角度定义,例如:

/articles/234
/blog/date/slug
...
处理这些面向公众的路由的Angular控制器将依次对API URL进行$http调用,每个控制器将提供一个Angular部分。因此,没有重复,没有重叠

至于问题的第二部分,在构建API数据时,您仍然可以使用Django ORM模型关系,但是,是的,在构建前端时,您将失去所有Django的优点

如果正确构建API,每个视图中所需的所有数据都将完全呈现在Angular在该视图中使用的JSON提要中。因此,您正在使用ORM构建后端数据,但您不能在不准备后端数据为其提供数据的情况下决定遍历模板中的模型关系


是的,这是一种非常不同的思维方式,是的,它比直接使用Django(或Rails)要复杂得多。这是构建web应用程序而不是网站的成本。

构建web应用程序不都是这样吗?客户端还是服务器端?你所说的“这是构建一个web应用程序而不是一个网站的成本”是什么意思?@shacker这是打字错误,你是指SOA还是SPA?如果是SPA,那么它代表什么?:)无论如何,很好的答案+1