Python Templating и Ajax - PullRequest
       1

Python Templating и Ajax

1 голос
/ 13 ноября 2010

Мне не удалось придумать лучший заголовок для этого поста, поэтому, если кто-то не найдет его подходящим, продолжайте редактировать его.

Я использую флешку в качестве основы Python, и обычно я отрисовываю шаблоны, делая сонеты, как показано ниже: -

@app.route('/home')
def userhome():
    data=go get user details from the database
    return render_template("home.html",userdata=data)

Теперь у меня есть имя шаблона home.html, в котором я перебираю значения «userdata», такие как userdata.name, userdata.age и т. Д., И эти значения занимают соответствующие пробелы в шаблоне.

Однако я работаю над приложением, в котором навигация осуществляется с помощью ajax и не отступает, если javascript недоступен (в основном, приложение не работает для ppl без javascript). Слева в навигационном меню есть несколько вкладок (home, youroffers, yourlastreads). Правый столбец должен динамически меняться в зависимости от того, что пользователь нажимает.

Я не могу понять, как я здесь работаю с шаблонами. Исходя из того, что пользователь нажимает, я могу отправить ему необходимые данные из БД через json через xhrGET или xhrPOST. Необходимо обработать весь шаблон на стороне сервера, а затем передать весь шаблон посредством вызова ajax. Мне на самом деле не очень нравится эта идея. Было бы здорово, если бы кто-то мог указать мне правильное направление здесь.

Теперь на странице, которая загружается через ajax, есть несколько скриптов, которые присутствуют. Будут ли работать эти скрипты, если загружены через ajax.

Ответы [ 2 ]

3 голосов
/ 13 ноября 2010

У вас есть два варианта: шаблон на сервере или шаблон в браузере.

Чтобы создать шаблон на сервере, вы создаете конечную точку, аналогичную уже существующей, за исключением того, что шаблон создает только часть страницы. Затем вы нажимаете на URL с помощью Ajax-вызова и вставляете возвращенный HTML-код в вашу страницу.

Для шаблона в браузере ваша конечная точка создает ответ JSON. Затем библиотека шаблонов Javascript может взять этот JSON, создать из него HTML и вставить его на страницу. Существует множество шаблонных решений jQuery , например.

2 голосов
/ 13 ноября 2010

Я бы выбрал шаблонизацию на стороне сервера, потому что, если вы не найдете библиотеку JS, которая обрабатывает тот же язык шаблонов, ваш код не будет испорченным.

В шаблоне home.html я бы сделал что-то вроде

<%extends base.html%>
<%include _user_details.html%>
... <% footer and other stuff%>

И сохраните фактическую разметку в _user_details.html. Таким образом, для запроса AJAX вы просто визуализируете только _user_details.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...