Jun 24, 2011

Полезные функции в Django

В Django существует куча полезных функций и классов, которые помогают выполнять простые и полезные действия раз от разу. Предлогаю Вам свое видение этого списка:
django.utils.datastructures.SortedDict
django.utils.datastructures.MultiValueDict
По умолчанию в Python объект dict не поддерживает сортировку ключей и несколько значений для одного ключа. Именно поддержку этих возможностей дают перечисленные выше классы. Например, поддержка GETPOSTREQUEST массивов в объекте request реализована в виде MultiValueDict объектов.
django.utils.dates
Этот модуль содержит разнообразные массивы, которые используются для печати SelectDateWidget'а.
django.utils.encoding.force_unicode
Переводит любой Python объект в unicode. Так же переводит в unicode любую модель Django у которой есть метод __unicode__.
django.utils.html.clean_html
Очищает переданный в функцию HTML строку, а именно:
  • Конвертирует <b> и <i> в <strong> и <em>.
  • Правильно кодирует все амперсанды.
  • Удаляет все "target" аттрибуты с тегов <a>.
  • Конвертирует явно заданные баллетсы (bullets) в неупорядоченные HTML списки.
  • Удаляет из текста фрагменты "<p>&nbsp;&nbsp;</p>", но только если они находятся в конце текста.
django.utils.html.urlize
Переводит все ссылки в тексте в <a> тэги.
django.utils.safestring.mark_safe
Обозначает любой строковой объект, как безопасный для того, чтобы он мог был беспрепятственно распечатан в шаблоне без эскейпинга символов.
django.utils.text.get_text_list
Для описания работы этой функции и doctest'а хватит:
>>> get_text_list(['a', 'b', 'c', 'd'])
u'a, b, c or d'
>>> get_text_list(['a', 'b', 'c'], 'and')
u'a, b and c'
>>> get_text_list(['a', 'b'], 'and')
u'a and b'
>>> get_text_list(['a'])
u'a'
>>> get_text_list([])
u''

No comments: