Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

python-04

.pdf
Скачиваний:
43
Добавлен:
22.03.2016
Размер:
846.57 Кб
Скачать

Достоинства и недостатки

Минусы:

Увеличение объема кода

Необходимость соблюдения заранее заданного интерфейса

Для поддержки разработки требуются более квалифицированные специалисты

Êплюсам отнес¼м следующее:

Несомненно более гибкий код

Возможность повторного использования каждой из тр¼х составных частей MVC

Безболезненная замена модели (другие алгоритмы расчета, способа хранения данных и т.д.)

Достаточно просто перейти от одного представления, к другому (от HTML к XML или JSON)

Шаблоны Django I

Определение

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

Cледующий шаблон описывает HTML страницу, которая благодарит посетителя за заказ, отправленный компании. Рассматривайте его как вид письма:

Шаблоны Django II

<html><body> <h1>Ordering notice</h1>

<p>Dear {{ person_name }},</p>

<p>Thanks for placing an order from {{ company }}.

It's scheduled to ship on {{ ship_date|date:"F j, Y" }}.</p> <p>Here are the items you've ordered:</p>

<ul>

{% for item in item_list %} <li>{{ item }}</li>

{% endfor %} </ul>

{% if ordered_warranty %}

<p>Your warranty information will be included in the packaging.</p> {% else %}

<p>You didn't order a warranty, so you're on your own when the products inevitably stop working.</p>

{% endif %}

<p>Sincerely,<br />{{ company }}</p> </body></html>

Пояснения I

Любой текст взятый в фигурные скобки и проценты (т.е., {% if ordered_warranty %} ) является шаблонным тегом. Определение тега достаточно простое: тег просто указывает шаблонной системе ¾сделать что-то¿.

Вышепривед¼ный шаблон содержит теги

for ({% for item in item_list %}) работает почти

так же как и оператор for языка Python, позволяя вам циклически обрабатывать каждый элемент последовательности.

if ({% if ordered_warranty %}) работает аналогично логическому оператору if.

Пояснения II

В данном примере, тег проверяет является ли True значением ordered_warranty . Если это так, шаблонная система отобразит вс¼, что находится между {% if ordered_warranty %} и {% else %}.

Наконец, второй параграф данного шаблона содержит пример использования фильтра, который предоставляет наиболее удобный способ изменения формата переменной. В данном примере, {{ ship_date|date:"F j, Y" }} , мы переда¼м значение переменной ship_date фильтру date, указывая для него аргументы "F j, Y". Фильтр date форматирует дату в соответствии с указанным форматом. Фильтры подключаются к переменным с помощью символа |, аналогично Unix потокам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]