我建议您对基于Angular2的项目的总体设计采用不同的方法.
基于Angular2的应用程序应该用作在浏览器中运行的完全包含的应用程序(在概念上类似于移动应用程序在移动操作系统上运行的方式).在你的Angular2应用程序和后端之间应该有一个非常明确和突然的分离.
考虑到这一点,您当然可以在后端使用Django,但不能像传统的Django应用程序那样使用服务器端呈现表单和页面的框架.
相反,你更愿意设计你的后端,让它公开一个带有JSON有效载荷的RESTful API接口(POST/PUT用于创建和更新对象,GET to fetch/list等),然后你的Angular2应用程序将使用该API来创建面向用户的体验.
提交时,用于创建对象的Angular2表单将向后端发出HTTP POST请求,其中包含JSON格式的数据作为其有效负载(而不是HTML表单提交产生的传统表单编码数据)
创建RESTful后端API的好工具选项是Django REST Framework或Tastypie.
对于身份验证,你可以使用JWT(JSON Web Token),有很多Django睡觉框架都支持这一点.
该架构有一个主要优势:将来,如果您的系统发展需要真正的原生移动客户端(例如Android或iOS应用程序),您应该能够为这些原生应用程序使用完全相同的RESTful API.
这种架构也有缺点,比如无法使用Django表单处理开箱即用的好东西.
考虑到上述情况,以下是对您最初问题的回答:
- 如何将angular2的插值语法从{{}更改为(())或类似的内容.
使用我建议的方法就没有必要了.
- 如何将Cookie中的CSRF令牌添加到每个http帖子中?
如果使用JWT,则不需要CSRF验证.如果使用基于会话的身份验证,您仍然需要它,但正如兰利建议的那样,您可以使用HTTP头传递它.
- 把Angular2和Django结合起来是个好主意吗?
主观的,但我会说是的,绝对是这样.但是,您需要确保清楚地将后端和前端分开.后端不应使用服务器端生成的HTML片段或HTML表单进行响应.这些都应该在你的Angular2应用程序中处理.