使用Django提供Angular应用程序

时间:2017-08-26 05:57:21

标签: python angularjs django

我有一个DjangoREST-Nginx-Gunicorn版本,我使用angular作为前端。

这是我第一次使用这个堆栈,虽然我非常熟悉Django。 根据我以前的情况,我使用render使用django模板提供页面。

由于我使用的是REST和angular,项目构建有点不同,我想知道如何通过这个堆栈提供角度应用程序。

这是我的项目构建

├── client
│   ├── client-app
│   └── index.html
├── gunicorn_start.sh
├── run
│   └── gunicorn.sock
└── server
    ├── config
    ├── __init__
    ├── manage.py
    ├── __pycache__
    ├── requirements.txt
    ├── static
    ├── urls.py
    └── views.py

我希望做的是服务client/index.html并让角度应用程序处理所有内容。

这样做的正确方法是什么?

编辑: 我在views.py

def index(request):
    return render(request, 'client/index.html')

但我得到了一个例外

  在

TemplateDoesNotExist

2 个答案:

答案 0 :(得分:1)

当域名输入时你应该将用户重定向到client / index.html然后使用angular-router你可以做几乎所有你使用php或django路由完成的事情 for more info about angular routing

答案 1 :(得分:1)

找不到模板,因为未设置TEMPLATE_DIRS,或者因为您的模板不在app/templates文件夹中,app位于INSTALLED_APPS (并且'django.template.loaders.app_directories.Loader'中有TEMPLATE_LOADERS)。

ps:如果您未在视图中执行任何操作,即仅渲染模板

def index(request):
    return render(request, 'client/index.html')

然后您可以在urls.py

中执行此操作
url(r'^$', TemplateView.as_view(template_name='client/index.html'))

(或者你可能只拼错/错了?它应该是^$ ...)