带有Angular 2的Django

拉斯矿

我想将Angular 2与Django集成在一起,但我要提出一些问题。

  1. 如何将Angular 2的插值语法从更改{{ }}(( ))或类似的东西?

  2. 如何将Cookie中的CSRF令牌添加到每个HTTP帖子中?

在Angular 1中,我做了这样的事情:

.config(function($httpProvider) {
    $httpProvider.defaults.xsrfCookieName = 'csrftoken';
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
});
  1. 将Angular 2与Django集成是一个好主意吗?
大卫·M

我会为基于Angular2的项目的总体设计推荐一种不同的方法。

基于Angular2的应用程序旨在用作在浏览器中运行的完全包含的应用程序(在概念上类似于移动应用程序在移动OS上的运行方式)。Angular2应用程序和后端之间应该有一个非常清晰而突然的分离。

考虑到这一点,您当然可以将Django用于后端,但不能像传统Django应用那样将框架与服务器端呈现的表单和页面一起使用。

相反,您宁愿设计后端,以便使用JSON负载公开RESTful API接口(使用POST / PUT创建和更新对象,使用GET提取/列出等),然后Angular2应用将使用该API进行创建面向用户的体验。

提交后,用于创建对象的Angular2表单将向您的后端发出HTTP POST请求,该请求包含JSON格式的数据作为其有效负载(而不是HTML表单提交产生的​​传统表单编码数据)

创建RESTful后端API的良好工具选择是Django REST FrameworkDeliciouspie

对于身份验证,您可以使用JWT(JSON Web令牌),并且Django REST Framework有很多不错的附加组件都支持该附加组件

该架构具有一个主要优势:在将来,如果系统的发展需要真正的本机移动客户端(例如Android或iOS应用),则您应该能够为这些本机应用使用完全相同的RESTful API。

该架构还具有一些缺点,例如无法立即使用Django表单处理优势。

考虑到上述情况,以下是对您原始问题的答复:

  1. 如何将angular2的插值语法从{{}}更改为(())或类似的内容。

我建议的方法将不需要这样做。

  1. 如何将Cookie中的csrf令牌添加到每个http帖子?

如果使用JWT,则不需要CSRF验证。如果使用基于会话的身份验证,您仍然需要它,但是可以使用HTTP标头传递它,如Langley建议的那样。

  1. 将Angular2与Django集成是一个好主意吗?

主观的,但我肯定会说是的。但是,您需要确保将后端与前端明确分开。后端不应使用服务器端生成的HTML代码段或HTML表单进行响应。所有这些都应在您的Angular2应用中处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有 Materialise 的 Angular 2

来自分类Dev

带有模板的Angular 2 @View与带有模板的@Component

来自分类Dev

带有Bootstrap JS的Angular 2

来自分类Dev

带有参数的Angular2 DynamicComponentLoader

来自分类Dev

angular2:带有模板的服务?

来自分类Dev

带有Angular2的非SPA

来自分类Dev

带有Angular 2问题的Kendo UI

来自分类Dev

带有淡入的Angular 2 SwitchCase

来自分类Dev

带有 Angular2 图像的 Ngif

来自分类Dev

带有Angular JS 1或Angular JS 2的Ionic 1

来自分类Dev

发送带有DELETE请求到django-rest并带有angular解释为OPTIONS

来自分类Dev

带有Angular和django / python的URL的JSON

来自分类Dev

在Django项目中的Angular中带有MultiValueDictKeyError的POST请求

来自分类Dev

带有Angular 2的Oauth 2弹出窗口

来自分类Dev

带有Typescript的Angular2带有局部变量的简单示例

来自分类Dev

带有angular2-highcharts的JSON数据

来自分类Dev

Typescript中带有angular2的对象类型的数组

来自分类Dev

带有实时和WebSockets的Angular2 + Laravel

来自分类Dev

Angular 2中带有身体的表格发布

来自分类Dev

带有参数的Angular 2自定义验证器

来自分类Dev

带有参数的Angular 2粘贴URL不起作用

来自分类Dev

angular2 rxjs过滤带有输入文本的线程

来自分类Dev

带有Web Api 2的Angular下载csv文件

来自分类Dev

Angular 2和带有服务的单元测试

来自分类Dev

Angular2中带有ngFor的ngControl

来自分类Dev

找不到带有角度材料@ angular / core的angularjs 2

来自分类Dev

Angular2中带有可选参数的依赖注入

来自分类Dev

带有TypeScript的Angular2:将组件导入组件

来自分类Dev

带有Angular2和Typescript的Visual Studio 2013