2013-12-05 2 views
1

Эй, я довольно новичок в каркасе Django. Я выбрал Django в качестве моей back-end фреймворка и angular.js в качестве внешнего интерфейса. и я уже построить свой собственный сайт (статические файлы только: css.html, JavaScript) и у меня есть несколько основных вопросов:Django и статический сайт

  1. В управлении маршрутизации моего URL, я могу только редирект index.html, и оттуда вся маршрутизация будет обрабатываться автоматически на стороне клиента. Это означает, что мне нужно только написать код python в представлениях django? если да, то какой код? это что-то вроде этого:

    urlpatterns = модели ('', URL (г '^ $', views.index, имя = 'индекс'))

  2. ли angular.js рамки имеют проблемы с картой django, о которых мне нужно знать? Например, я видел, что шаблоны django используют фигурные скобки в html-коде, который также используется angular.js.

+0

Пожалуйста, перефразировать 2 – Daniel

+0

Я сделал это: Я перефразировать 2. – Brk

ответ

3

Угловые и Django могут играть очень красиво.

Обычно у вас есть один URL-адрес (на главной странице), где живет ваше угловое приложение. С этого момента остальная часть вашей маршрутизации будет обрабатываться Angular, если вы выберете.

Чтобы загрузить данные для своего приложения, вы можете захотеть сделать запросы ajax на конечную точку /ajax/, для которой вы захотите написать виды Django, которые возвращают json.

Специально для решения 2: если вы используете угловые переменные в шаблоне (например: {{ myvar }}) вам нужно будет обернуть их в {% verbatim %} или Django будет пытаться сделать их при загрузке страницы intially, например:

{% verbatim %} 
    <!-- django does not try to render this now --> 
    <div>{{ angular_var }}</div> 
{% endverbatim %} 

Надежда, что помогает, Аарон

+0

ОК, и если я завершу их в {% verbatim%}, будет ли angular.js их распознавать? Я довольно новичок в angular.js (также), и я знаю, что только {{}} работает ... – Brk

+0

Да, если вы не используете '{% verbatim%}', django попытается отобразить переменные в и терпит неудачу, так как они не будут в вашем контексте. Использование '{% verbatim%}' будет сообщать django о том, чтобы оставить {{}} 'фигурные скобки в одиночку, так что угловые могут их использовать. – aaronfay

+0

хорошо, я прочитал ваш ответ второй раз, и теперь у меня есть ваша точка :) Thx вы меня решаете, мой второй вопрос. – Brk

1
  1. да, вы можете и вы это сделали. Из вашего кода Django обрабатывает только URL-адрес. Кроме того, убедитесь, что у вас есть код маршрутизатора в интерфейсе.
  2. Если вы не используете шаблоны Django, все будет в порядке. Если вы используете шаблоны Django и AngularJS в одном файле, это может привести к конфликту легко (шаблон Django и AngularJS используют синтаксис {{}} "). Возможно, вы можете прочитать этот проект: django-angular
+0

отлично! спасибо за ответ. – Brk

+0

Последний вопрос: Что вы имеете в виду, когда вы сказали код маршрутизатора в конце кода клиента? У меня есть ссылка в моем index.html на другой main.html, и оттуда я обрабатываю свои URL-адреса как ngviews, используя angular.js – Brk

+0

@Brk, что я сказал просто означает, что вам нужно поддерживать таблицу маршрутизатора в интерфейсе. Это можно считать использованием ngRouter для вас. –

Смежные вопросы