【问题标题】:How to implement Angular with Django如何用 Django 实现 Angular
【发布时间】:2021-12-21 22:22:38
【问题描述】:
我需要使用 Angular(TypeScript) 作为前端和 Django 作为后端来创建应用程序,我将只在 Django(后端)上工作。是否创建一个 REST API 仅足以与前端通信。在这种情况下,这只能在后端实现吗?
通常在 Django 中工作时,我曾经在表单、视图中工作,并将在 html 中呈现并为其创建 API,但在这种情况下,我什至不知道 angular 是如何工作的。仅在与 Angular 通信时创建一个 API 就足够了
【问题讨论】:
标签:
django
angular
django-rest-framework
【解决方案1】:
是的,您将使用 Django 进行 REST API 视图。忘记模板和 Django 表单,您将只是发送和接收 JSON。
如果您想一起托管它,您可能只提供 index.htm。棘手的部分是你需要匹配所有可能的应用程序路由来索引(整个 Angular 都在那里,在客户端处理路由。但是重新加载后的初始请求仍然可以导致任意 url)
更常见的方法是使用两个单独的容器,一个用于 api,一个用于 Angular 应用程序。然后您可以在 Angular 应用程序上提供服务器端渲染(这仍会从中调用 api)并分离 api 而无需处理索引。
【解决方案2】:
是的,使用 Django/DRF 创建 API 足以与 Angular 应用程序通信。
下面是 Django Angular 应用程序的基本架构示意图。
Django 中的 API 端点将使用 DRF(Django Rest 框架)通过 urls.py 文件提供服务。角度客户端将使用 Http 客户端模块发送 HTTP 请求并在组件/页面上显示检索到的数据。数据服务在 Angular 中创建的将使用 HTTP 客户端发送和获取数据。Angular Router 将处理对页面和组件的导航。