分离 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。请对样板持保留态度,我出于一系列非常具体的原因想出了这个样板。
我是 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。请对样板持保留态度,我出于一系列非常具体的原因想出了这个样板。