当前位置: 首页 > 面试题库 >

Django,REST和Angular路线

沃念
2023-03-14
问题内容

我正在尝试将AngularJS等客户端框架与Django结合起来。令我真正困惑的一件事是路由和REST问题。

我一直在尝试在线阅读很多相关内容,但是文档非常有限,尤其是在Django与Angular结合使用的情况下(这里或那里的小片段)。我知道我需要添加一个类似TastyPie的REST框架,以便在我的应用程序中创建一个健壮的REST接口,以便Angular插入并获取资源。

但是,我对如何正确地映射路线感到困惑,即(1)服务器端应用程序可以渲染带有角插入的单页应用程序(SPA)(2)本应加载信息/渲染模板(角度)和从服务器检索数据(django)不会冲突。就像如果有人在我的网站上进行site.com/user/1234一样-
该路由与Angular路由和Django路由都相关联-除了一个路由呈现模板,另一个路由基于从中获取的内容吐出JSON数据库/服务器。

另外,通过使用REST
API,我是否放弃了将ModelForms与我的模型同步等方面的许多优势?有什么办法可以使用AngularJS来维护它,还是我必须寻找AngularJS的替代品。


问题答案:

这个问题并不是真正针对Django的-只是了解SPA中后端与前端之间关系的问题。

后端和前端之间没有路由重复。您的Django路线应设置为:

/api/foo
/api/bar
...

和一个 单一的 ,提供了一个路线 单一 页面完整的HTML谐音,例如

/

其余路线将在Angular中定义,例如

/articles/234
/blog/date/slug
...

处理这些面向公众的路由的Angular控制器将依次对API URL进行$
http调用,并且每个控制器将传递一个Angular部分。因此,没有重复,也没有重叠。

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

如果您正确构建API,则每个视图中所需的所有数据将完全显示在Angular在该视图中使用的JSON
feed中。因此,您正在使用ORM进行后端数据构建,但是如果不先准备后端数据来为其提供数据,就不能决定遍历模板中的模型关系。

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



 类似资料:
  • 问题内容: 给定具有JSONField的Django模型,使用对其进行序列化和反序列化的正确方法是什么? 我已经尝试过创建一个自定义和覆盖和: 但是,当我尝试使用来更新模型时,JSONField对象中的所有浮点数都变为字符串。 问题答案: 如果你使用的是Django Rest Framework> = 3.3,那么现在将包含 JSONField序列化程序。现在这是正确的方法。 如果你使用的是Dja

  • 问题内容: 我在理解和挣扎中挣扎。我想将其用作序列化器上的字段。我有一个可能包含许多内容的。我试图写一个序列化器,如下所示: 我知道,这没有任何意义,因为文档说了并以此为依据。因此,以上代码自然会引发错误: TypeError: init ()获得了意外的关键字参数’stops_left’ 期望的输出 如何实现呢?是一个列表,可能包含我想要的尽可能多的元素。 python 3.5.1 Django

  • 我用ImageField创建了一个简单的模型,我想用django-rest-framework+django-rest-swagger创建一个api视图,它是文档化的,并且能够上传文件。 以下是我得到的: 我阅读了django-rest-framework中的这部分文档: 我正在使用、和。

  • Django REST Framework 这个名字很直白,就是基于 Django 的 REST 框架。

  • cookiecutter-django-rest a factory for building bleeding edge, best practiced, scalable, rest apis You need to make a scalable api on a deadline. You deeply care about the quality of your work.cookiec