Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Django con Angular 2

Quiero integrar Angular 2 con Django y tengo algunas preguntas que hacer.

  1. ¿Cómo puedo cambiar la sintaxis de interpolación para Angular 2 de {{ }} a (( )) o algo así?

  2. ¿Cómo puedo agregar el token CSRF de la cookie a cada publicación HTTP?

En Angular 1 hice algo como esto:

 .config(function($httpProvider) { $httpProvider.defaults.xsrfCookieName = 'csrftoken'; $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; });
  1. ¿Es una buena idea integrar Angular 2 con Django?
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Recomendaría un enfoque diferente para el diseño general de su proyecto basado en Angular2.

Una aplicación basada en Angular2 está diseñada para usarse como una aplicación completamente contenida que se ejecuta en el navegador (conceptualmente similar a cómo se ejecuta una aplicación móvil en un sistema operativo móvil). Debe haber una separación muy clara y abrupta entre su aplicación Angular2 y el backend.

Con eso en mente, ciertamente puede usar Django para su backend, pero no en la forma en que una aplicación Django tradicional usaría el marco con formularios y páginas renderizados del lado del servidor.

En su lugar, preferiría diseñar su backend para que exponga una interfaz API RESTful con cargas útiles JSON (usando POST/PUT para crear y actualizar objetos, GET para obtener/listar, etc.). Luego, su aplicación Angular2 consumiría esa API para crear la experiencia de cara al usuario.

Cuando se envía, un formulario Angular2 para crear un objeto emitiría una solicitud HTTP POST a su backend que contiene datos con formato JSON como su carga útil (y no los datos codificados de formulario tradicionales que resultan de un envío de formulario HTML)

Buenas opciones de herramientas para crear su API de back-end RESTful serían Django REST Framework o Tastypie .

Para la autenticación, puede usar JWT (JSON Web Tokens) y hay buenos complementos para Django REST Framework que lo admiten.

Esa arquitectura tiene una gran ventaja: en el futuro, si la evolución de su sistema requiere clientes móviles nativos reales (aplicaciones de Android o iOS, por ejemplo), debería poder consumir exactamente la misma API RESTful para esas aplicaciones nativas.

Esa arquitectura también tiene inconvenientes, como la incapacidad de usar la bondad de manejo de formularios de Django lista para usar.

Teniendo en cuenta lo anterior, aquí están las respuestas a sus preguntas originales:

  1. ¿Cómo puedo cambiar la sintaxis de interpolación para angular2 de {{ }} a (()) o algo así?

No habría necesidad de eso usando el enfoque que sugiero.

  1. ¿Cómo puedo agregar el token csrf de la cookie a cada publicación http?

Si usa JWT, no necesitaría la validación CSRF. Si usa la autenticación basada en sesión, aún la necesitaría, pero podría pasarla usando un encabezado HTTP, como sugirió Langley.

  1. ¿Es una buena idea integrar Angular2 con Django?

Subjetivo pero diría que sí, definitivamente. Sin embargo, debe asegurarse de separar claramente el backend del frontend. El backend no debe responder con fragmentos de HTML o formularios HTML generados en el lado del servidor. Todo eso debe manejarse dentro de su aplicación Angular2.

over 4 years ago · Santiago Trujillo Relatório

0

Mmm. Las tres preguntas que enfrenté recientemente.

    1. Sí. Definitivamente es una gran idea. Dado que tiene el poder de muchas bibliotecas de Python como backend para realizar cualquier acción que desee combinada con el poder de angular. :D
    1. Funciona inyectando su propio proveedor HTTP con opciones de solicitud predeterminadas actualizadas como sugirió Langley. Editar: Recientemente encontré una mejor solución usando el servicio de cookies angular2. Que le inyecta CSRSFToken al proporcionar una XSRFStrategy ;-)

Un inconveniente es que necesita bibliotecas adicionales: NPM: Angular2-cookie

 import { Injectable } from '@angular/core'; import { CookieService } from 'angular2-cookie/services/cookies.service'; import { HttpModule, Headers, BaseRequestOptions, RequestOptions, XSRFStrategy, CookieXSRFStrategy } from '@angular/http'; @Injectable() export class DefaultRequestOptions extends BaseRequestOptions{ headers:Headers = new Headers({ 'Content-Type': 'application/json' }); } @NgModule({ imports: [... HttpModule], declarations: [ AppComponent, ..., ], bootstrap: [AppComponent], providers: [... CookieService, { provide: RequestOptions, useClass: DefaultRequestOptions }, { provide: XSRFStrategy, useFactory: (cookieService) => { return new CookieXSRFStrategy('csrftoken', 'X-CSRFToken'); }, deps: [CookieService] } ] }) export class AppModule { constructor(){ // ther you go ;-) } }

Configuración de interpolación predeterminada estática dentro de su módulo ' @ angular / compilador '.

 import { DEFAULT_INTERPOLATION_CONFIG } from '@angular/compiler' // These values will be used if not provided by your Component.interpolation DEFAULT_INTERPOLATION_CONFIG.start = '{$'; DEFAULT_INTERPOLATION_CONFIG.end= '$}';
over 4 years ago · Santiago Trujillo Relatório

0

Hay una etiqueta verbatim en Django,
que se puede usar para ignorar la etiqueta {{}} dentro del bloque verbatim
Consulta aquí

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda