如何用 Django 实现 Angular

How to implement Angular with Django

我需要使用 Angular(TypeScript) 作为前端并使用 Django 作为后端创建一个应用程序,我将只在 Django(后端)上工作。创建一个 REST API 是否仅足以与前端通信。在这种情况下,只有在后端才有可能吗?

通常在 Django 中工作时,我曾经在表单、视图中工作,并将在 html 中呈现并为其创建 API 但在这种情况下我不知道如何 angular 甚至可以工作。仅在与 Angular

通信时创建一个 API 就足够了

是的,您将使用 Django 进行 REST API 视图。忘掉模板和 Django 表单,您将只发送和接收 JSON。

如果您想一起托管它,您可能只需要 index.htm。棘手的部分是您也需要将所有可能的应用程序路由匹配到索引(整个 Angular 都在那里,在客户端处理路由。但是重新加载后的初始请求仍然会导致任意 url)

更常见的方法是使用两个单独的容器,一个用于 api 应用程序,一个用于 angular 应用程序。然后,您可以在 angular 应用程序上提供服务器端呈现(这仍会从中调用 api)并分离 api 而无需处理索引。

是的,使用 Django/DRF 创建 API 足以与 Angular 应用进行通信。

下面是 Django Angular 应用程序的基本架构图。

API Django 端点将使用 DRF(Django Rest Framework)通过 urls.py 文件提供服务。angular 客户端将使用 Http 客户端模块发送 HTTP 请求并显示components/pages 上检索到的数据。在 Angular 中创建的数据服务将使用 HTTP 客户端发送和获取数据。Angular 路由器将处理页面和组件的导航。