我想在 Django 中托管 Angular 6 应用程序,我该怎么做?
最佳答案
集成 Angular 8 和 django 2.2
为 Django 2.2 使用 Visual Studio和 Angular 8 的 Visual Studio Code
我对上述解决方案进行了调整,最终成功了。在上述解决方案之上使用一些额外的引用资料(在末尾列出)设计了一个更简单的解决方案。
假设:
- angular 设置在:example/angular
- django 安装在:example/django
将angular文件直接分发到django静态文件夹
这是 #1 的关键,其余的是胶水(有点难看)代码,尽可能轻松地将框架拼接在一起。
在控制台:
cd example/angular
ng build --prod --output-path ..\django\mysite\mysite\app\static\angular --output-hashing none --watch
检查 Angular/CLI对于命令行开关及其使用,这里的关键是角度编译的输出直接进入 Django,不需要中间人。
为开发和测试维护独立的FE和BE
注意:这是可选的,您可能会“破坏”您的 Angular 开发环境并将所有 Django 标签和属性直接放在 Angular 中,代价是失去 FE - BE 独立性。
在 Django 中不能“按原样”使用 Angular 中分发的 index.html。
这是一个这样的例子,称之为 angular.html:
{% load static %}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>mysite</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="{% static 'angular/favicon.ico' %}">
<link rel="stylesheet" href="{% static 'angular/styles.css' %}">
</head>
<body>
<app-root></app-root>
<script src="{% static 'angular/runtime.js' %}"></script>
<script src="{% static 'angular/polyfills-es5.js' %}"></script>
<script src="{% static 'angular/polyfills.js' %}"></script>
<script src="{% static 'angular/main.js' %}"></script>
</body>
</html>
注意:只使用Django原生语言
像任何其他 html 一样在 django 中提供它
还有什么
- django 和 angular 之间的双向路由
- 像 bootstrap 一样共享包
- 强烈推荐django-rest-frame-work作为起点
- BUILDING A WEB APP WITH ANGULAR, DJANGO AND DJANGO REST一个更复杂的例子把它们放在一起,我会保留上面简化的 django 和角度粘合机制。
关于django - 如何在 Python Django 中托管 Angular 6 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53503054/