Django Direct_to_template или плоские страницы

Создание приложения django с некоторыми в основном статическими страницами в передней части сайта, например. about.html faq.html

такие вещи

Я смотрел, как работает urls.py, и создал это.

('(.+\.html)$', direct_to_template),

Кажется, он делает именно то, что мне нужно. Теперь для любой новой страницы .html я добавляю ее в корень папки с шаблонами, и она просто работает. шаблоны / about.html templates / faq.hml

Я также могу использовать такие вещи в своих шаблонах

{% include "_menu.html" %}

Кто-то любезно указал на Django FlatPages и предположил, что я могу использовать их вместо них. Если я не подключаюсь к базе данных, есть ли недостатки в том, как я это делаю.

Мне кажется, что это лучший способ сделать это, чем FlatPages, потому что он использует db и не так элегантен (хотя на практике на самом деле плоские страницы не использовались)


person Derek Organ    schedule 17.08.2010    source источник


Ответы (3)


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

Если вы используете возможности шаблона Django, не требуя какого-либо динамического содержимого из базы данных, вы можете придерживаться direct_to_template.

person Manoj Govindan    schedule 17.08.2010
comment
ага .. так что это +1 за мой подход. :) - person Derek Organ; 17.08.2010
comment
если вы ищете альтернативу direct_to_template для представлений на основе классов, проверьте этот ответ stackoverflow.com/a/12150035/742390 - person Pykler; 11.05.2013

Если вы можете редактировать файлы шаблонов напрямую и вручную добавлять новые в файл urls.py, то придерживайтесь того, что у вас есть. Flatpages полезны, если вы хотите иметь возможность редактировать содержимое страницы из интерфейса администратора или любого веб-инструмента редактирования, который вы можете разработать, или, возможно, более важно: если вы хотите, чтобы пользователи, не имеющие технической подготовки, могли редактировать содержание.

person mazelife    schedule 17.08.2010
comment
Я думаю, вы упускаете суть ... с этим решением мне вообще не нужно редактировать файл urls.py. если я хочу новый файл, скажем, example.com/terms.html, все, что мне нужно сделать, это создать новый файл html и сохранить его в папке моих шаблонов ... готово. Хотя я хорошо понимаю часть CMS. - person Derek Organ; 17.08.2010
comment
Извините, я прочитал это слишком быстро. Похоже, тогда твой путь в порядке; нет смысла что-то перерабатывать. - person mazelife; 17.08.2010

Одним из преимуществ использования FlatPages является то, что вы можете использовать шаблоны Django для заголовков, боковых панелей, нижних колонтитулов (для поддержания единообразного внешнего вида сайта), при этом используя в основном простой HTML для содержимого страницы. Это компенсируется необходимостью хранить содержимое страницы в таблице базы данных.

Мой совет? Если то, что вы делаете, соответствует вашим потребностям, придерживайтесь того, что работает.

person Craig Trader    schedule 17.08.2010