Архив за год: 2015

Django Book: загрузка шаблонов

17 февраля 2015
 

  Предыдущая часть. Django предоставляет мощный и удобный API для загрузки шаблонов из файловой системы, цель которого — избавиться от избыточного кода в в вызовах шаблонов и в самих шаблонах. Для того, что бы использовать этот API — вы должны указать фреймворку, где именно он должен искать файлы шаблонов. Сделать это можно в файле настроек… Читать далее »

Django Book: использование шаблонов в представлениях

16 февраля 2015
 

 Предыдущая часть. Теперь, когда вы изучили основы системы шаблонов Django, давайте разберёмся как создавать представления с использованием шаблонов. Вспомните представление current_datetime, которое мы создали в предыдущей главе, в разделе Django Book: третье представление – динамические URL-ы. Вот как оно выглядит: from django.http import HttpResponse, Http404 import datetime def current_datetime(request): now = datetime.datetime.now() html = «<html><body>It is now %s.</body></html>»… Читать далее »

Django Book: философия и ограничения

15 февраля 2015
 

 Предыдущая часть. Теперь, когда вы немного разобрались с языком разметки шаблонов Django, мы должны показать вам некоторые намеренные ограничения и немного пофилософствовать о том, почему это работает именно так и не иначе. Синтаксис шаблонов очень субъективен, а мнения разработчиков очень и очень различны. Тот факт, что Python имеется десятки, если не сотни, реализаций языка шаблонов… Читать далее »

Django Book: основные теги и фильтры шаблона

14 февраля 2015
 

 Как мы уже упоминали в предыдущей части — в систему шаблонов включены теги и шаблоны. В этой части мы кратко рассмотрим наиболее используемые из них. Теги (tags) if/else Тег {% if %} проверяет значение переменной, и если оно True (т.е. — она не пустая, и её булево значение не false) — система отобразит всё, что указано… Читать далее »

Django Book: использование системы шаблонов

13 февраля 2015
 

 Предыдущая часть — Django Book: основы системы шаблонов. Давайте рассмотрим систему шаблонов Django поближе, что вы могли лучше понять как она работает. Однако — мы пока не будем её внедрять в наши представления из первой главы. Наша цель сейчас — показать как эта система работает независимо от остальной части проекта на Django (другими словами — обычно… Читать далее »

Django Book: основы системы шаблонов

11 февраля 2015
 

 Глава 2 Оглавление В предыдущей главе вы видели как мы возвращали HTML-код из наших представлений — он был вписан непосредственно в код Python, например: def current_datetime(request): now = datetime.datetime.now() html = «<html><body>It is now %s.</body></html>» % now return HttpResponse(html) Хотя этот способ подходит в целях демонстрации того, как работают представления, это не самая хорошая идея —… Читать далее »

Django Book: страница ошибки Django

10 февраля 2015
 

 Предыдущая часть. Давайте отвлечёмся на минутку от разработки, и полюбуемся нашим прекрасным сайтом… А теперь — нужно его поломать! Давайте намеренно внесём ошибку в код Python, в файле views.py, закомментировав строку offset = int(offset) в функции hours_ahead: def hours_ahead(request, offset): # try: # offset = int(offset) # except ValueError: # raise Http404() dt = datetime.datetime.now() + datetime.timedelta(hours=offset) html… Читать далее »

Django Book: третье представление — динамические URL-ы

7 февраля 2015
 

 Предыдущая часть. В нашем предыдущем представлении current_datetime содержимое страницы — текущие время и дата — были динамическими, но URL для обращения к ним был статическим. В очень многих веб-приложений URL содержит в себе параметры, которые влияют на выводимое содержимое страницы. Например, онлайн-магазин книг может хранить каждую книгу в одельном URL-е, таком как /books/243/ и /books/81196/. Давайте создадим третье представление,… Читать далее »

NGINX: 413 Request Entity Too Large

6 февраля 2015
 

 При попытке импорта записей в WordPress — NGINX сообщает об ошибке: 2015/02/03 16:48:29 [error] 9351#0: *309 client intended to send too large body: 10095513 bytes, client: 85.91.123.14, server: rtfm.co.ua, request: «POST /wp-admin/admin.php?import=wordpress&step=1&_wpnonce=de375f6c50 HTTP/1.1», host: «rtfm.co.ua», referrer: «http://rtfm.co.ua/wp-admin/admin.php?import=wordpress Проблема заключается в параметре client_max_body_size:

Django Book: URLconf и "слабые связи"

5 февраля 2015
 

 Предыдущая статья. Сейчас хороший момент, что бы подчеркнуть ключевой момент философии URLconfs и Django: понятие «слабые связи» (loose coupling). Проще говоря, «слабые связи«, или «слабосвязанность» — это подход в программировании, при котором особое значение имеет независимость компонентов друг от друга — т.е. наличие «слабых связей» между ними. Если две части кода «слабосвязаны» — то изменения в одной части… Читать далее »