Вы не можете выполнить Python из обработанного шаблона, но вы можете делать то, что хотите, комбинируя Python с Javascript. Я собираюсь использовать Flask в качестве примера веб-фреймворка, но должно быть довольно ясно, что он делает, даже если вы не знакомы с Flask в частности.
Идея в том, что у вас есть два маршрута/адреса. Один служит вам основным представлением, в котором вы хотите, чтобы ваше «Обновление ...» имело место. Другой маршрут возвращает фрагмент HTML, состоящий из данных каталога, преобразованных в подходящее представление HTML. Что-то вроде этого:
Питон:
def _walk_through_directories():
"""
Walk through directories and gather the
data you want and return it in some collection
for example.
"""
...
return directory_data
@app.route('/directories')
def directories():
return render_template('directories.html')
@app.route('/directories/fragment')
def directories():
directory_data = _walk_through_directories()
return render_template('directories_fragment.html',
directory_data=directory_data)
Теперь, когда пользователь заходит на вашу базовую страницу в /directories, он/она видит ваш базовый шаблон, который еще не содержит ничего о данных каталога. Чтобы исправить это, вы можете выполнить Javascript после загрузки документа и получить содержимое, выполнив HTTP GET с Ajax. Что-то вроде этого:
Javascript + jQuery, вызываемый из «directory.html»:
$('#message-box').html('Updating...');
$.get('/directories/fragment', function(data) {
$('#result-box').html(data);
$('#message-box').html('All done!');
});
Таким образом, идея состоит в том, чтобы обслуживать базовую страницу с помощью Python, а затем использовать Javascript на стороне клиента для получения «динамического» контента. Обратите внимание, что я просто собрал это вместе, так что где-то может не хватать пары скобок, и вам следует добавить правильную обработку ошибок и все такое прочее.
person
Kalle
schedule
02.06.2013