分离 Django Rest framework app 和 Angularjs app ,它们如何通信?

Seperate Django Rest framework app and Angularjs app , how do they communicate?

我是 AngularJs 的新手,我正在尝试制作一个使用 Django Rest 框架 api 的 JSON 的 AngularJS 应用程序,我有建议将项目分成 2 个单独的应用程序,一个用于 Django,另一个用于 AngularJS(甚至使用 2 个不同的 IDE),我的问题是如何设置我的 AngularJS 应用程序和我的 Django 应用程序知道我在本地主机上工作,他们可以相互交流吗? Django Rest 框架将如何响应 AngularJS 请求? 谢谢

简单的方法是让 Django 模板视图为您的客户端 (AngularJS) 应用程序服务。 另一种方法是使用 NodeJS + Express + Grunt/Gulp 在本地主机的另一个端口上为客户端应用程序提供服务,并在 Rest Framework 中设置 CORS。 无论哪种方式,您都可以从客户端应用程序 $http.get/post/whatever 调用 Django host:port 应用程序。

我通常使用第二种方法。

views.py

class HomePageView(TemplateView):
    template_name = 'home.html'

urls.py*

urlpatterns = patterns('public.views',
    url(r'^$', HomePageView.as_view(), name='home'),

templates/home.html

<!DOCTYPE html>

{% load i18n %}
{% load staticfiles %}
{% load compress %}

<html lang="en">

<head>
    <meta charset="utf-8"/>

    ...

    {% compress css %}
        <link rel="stylesheet" href="{% static "libs/bootstrap/css/bootstrap.css" %}">
        ...
    {% endcompress %}
</head>

<body ng-app="MyApp">
    ...

    {% compress js %}
    <script src="{% static "libs/jquery/jquery.js" %}"></script>
    ...
    <script src="{% static "js/my-app/controllers/my-controller.js" %}"></script>
    ....
    {% endcompress %}
</body>

对于 AngularJS 部分,我使用 Gulp, Browserify and a lot of other stuff。请对样板持保留态度,我出于一系列非常具体的原因想出了这个样板。