Создание читаемых html с шаблонами django

При использовании Django для html templating, как мне создать хорошее форматирование разметки html.

Я пытаюсь использовать блоки контента. Но блоки контента отображаются на разных уровнях отступов в разных шаблонах. Как получить блоки контента, чтобы показать отступы, как если бы кто-то должен был написать html.

У меня такая же проблема с новыми строками; Я могу разбить все блоки вместе в шаблоне. В этот момент html выглядит лучше, но шаблоны недостижимы.

Я думаю, вопрос в том, как создать красивую html-разметку с помощью системы шаблонов django?

Я до сих пор удивлен ответами. Я нахожу, что хорошо отформатированные HTML файлы помогают писать соответствующие CSS и JavaScript. А также облегчить добавление контента позже.

Ответы

Ответ 1

Кристиан С. Пероне из Pyevolve имеет именно то, что вы ищете. Он использует промежуточное программное обеспечение для перехвата объекта HTTPResponse и запускает его через BeautifulSoup.

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

Ответ 3

Читаемость HTML не имеет значения. В такой системе, как Django или Rails, HTML - это выходной формат, а не исходный формат. Когда люди редактируют HTML вручную, они имеют право беспокоиться о отступе и интервалах, потому что это исходный формат, и кому-то придется его редактировать в будущем. Но вывод шаблонов таков: вывод. Браузер не заботится о отступе. На данный момент единственными людьми, которые читают HTML, являются люди, смотрящие на View - Source.

Ответ 4

Я впечатлен тем, что вы заботитесь о получаемом html - я только беспокоюсь о том, чтобы получить шаблоны в порядке и читаемости! Но в ответ на ваш вопрос, посмотрели ли вы на промежуточное ПО?

http://docs.djangoproject.com/en/dev/topics/http/middleware/

Затем используйте модуль pidon Tidy для переформатирования html.

http://pypi.python.org/pypi/PythonTidy/

Ответ 5

Я рекомендую запустить вывод механизма шаблона с помощью более тонкого HTML, например μTidylib.

Ответ 6

Если вы используете Django Templates для строкового форматирования длинно-простых строк, вы можете использовать строки с тремя кавычками Python с .format() в функции def:

def templated_string(context_dict):
    return '''This is an example
of a long string across multiple lines.
It can be used to format {something} for 
{name} own purposes, even though
it looks funny in code'''.format(**context_dict)

Тогда templated_string({'name': 'rileymat', 'something': 'whatever you want'}) делает разумную вещь. Вы можете генерировать необработанный HTML таким образом..., который затем имеет именно пропущенное вами пространство.