使用中文编写的此标题:“让Django与Angular路由相容”

2024-05-15 05:43:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个现有的Django项目,正在添加一个由API(使用rest框架)和angle应用组成的新应用程序。此应用程序包含一个Django模板,它只是作为Angular挂接的一种方式,然后使用它自己的部分:

{% extends "base.html" %}
{% block content %}

<div ui-view></div>

{% endblock %}

从这里开始,我希望angular接管应用程序的路由:

^{pr2}$

但是,如果要在第一个页面中显示Django页面,则会加载后续页面404

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/routines/add

基于我目前对这两个系统的了解(有限),我试图在Django配置中指定一个url,该url将应用于所有例程/*url,而不加载模板,从而允许angular请求它所需的部分,以便它可以继续不间断地运行SPA。但是,我找不到任何关于在没有模板的情况下指定URL的信息,这使我认为这不是正确的解决方案。在

urlpatterns = [

url(r'^$', views.routineView, name='routine'),

url(r'^/.*$', views.routineView, name='angular'),

小结: 我想使用Angular和Django restapi应用程序来创建一个web应用程序。但是,我想保留我现有的Django站点的其余部分,只需将其添加到(我当前Django中的一个嵌入式SPA)基本.html模板)。如何设置路由(在Angular和Django上),以便Django允许angro在请求某个页面后中断运行(在本例中)网站例程). 在


Tags: djangodiv模板应用程序url路由requesthtml
1条回答
网友
1楼 · 发布于 2024-05-15 05:43:19

据我所知,您只需将AngularJS与Django restapi以及Django模板一起用于某些路由。我是在使用这个https://github.com/mgonto/restangular之前做的。创建表示资源的服务所需的全部内容。以下是AngularJS中服务的示例代码:

(function() {
    function Course(Restangular) {
        var service = Restangular.all("course");
        //studentStats refers to the corresponding JS function that will call the API (note API URL is configured in app.js)
        //student_stats refers to the corresponding url in Django API
        service.addRestangularMethod("studentStats", "get", "student_statuses");
        return service;
    }
    angular.module("YOUR-APP")
    .service("Course", ["Restangular", Course]);
}).call(null); 

相关问题 更多 >

    热门问题