Публикации о языке Python   страница 295

Django Forum - это реально

Конечно, я знаю, что для Django есть десятки прототипов решений форума, начиная от Cicero и заканчивая Snapboard и Mighty Board. Но не с одним из этих прототипов мне не удалось подружиться быстро и безболезненно. Всегда надо было предпринимать какие-то лишние телодвижения, связанные с пониманием идеологии того или иного форума.

И вот вчера, когда я еще раз просматривал списки доступных решений я наткнулся на статью ForumAppsComparsion в Django Code Wiki. Присмотрелся я к табличке и понял, что не имел дело всего лишь с django-threadedcomments и Django Forum. Благо и одно и второе приложение содержало демо-версии и я решил остановится на них п




Расширение функционала django-admin.py и django-manage.py с помощью django-command-extensions

Вообще, утилиты командной строки django-admin.py и django-manage.py обладают кучей полезных и крайне юзабельных функций (dbshell, runserver, shell и тп), но иногда и их бывает недостаточно.

И именно тогда на помощь приходит django-command-extensions! Это приложение расширяет стандартные возможности утилит Django и теперь вы можете:

  • Создавать скелет приложения по своему шаблону (create_app)
  • Создавать скелет для своей комманды (create_command)
  • Быстро добавлять суперпользователя в базу данных (create_superuser)
  • Быстро создать форму для необходимой модели (describe_form)
  • Создать базу контактов пользователей вашего проекта (export_email)
  • Сгенерировать SECRET_KEY для настроек проекта (generate_secret_key)
  • Создать граф, показывающий связь межд



jQuery AutocompleteWidget для Django

По моему скромному мнению, сейчас найти правильный сниппет, показывающий как реализовать автозаполнение на том или ином языке программирования с использованием того или иного JavaScript фреймворка - пустяковое дело.

Так что будем считать, что сегодня просто сама по себе настала очередь связки jQuery + Django. Реализация виджета автозаполнения в этой связке - проста до ужаса. Особенно, когда используется великолепный jQuery Autocomplete plugin.

Вся идея реализации состоит в следующем:

  1. Определяем какие данные будут использоваться в автозаполнении (локальные или удаленные)
  2. Если данные удаленные, пишем view и добавляем этот view в urlpatterns
  3. Получаем автозаполняемое поле

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




django-manage.py или не единым django-admin.py сыты будем

В разработке своих проектов на Django я придерживаюсь архитектуры, близкой к той, которую описал Мальколм Трединник в своей статье "Django Tip: Developing Without Projects". Странно звучит, да, разработка проектов используя методику разработки без проектов.

Но это только на первый взгляд. В действительности я не использую терминологию Django, в которой проект - это продукт действия django-admin.py startproject, порождающий дополнительную ветвь в иерархии и приводящий к повсеместному использованию projectname. в питон коде. Для меня проект - это скорее объединение приложений, как reusable (как-то django-tagging, django-mptt и многие многие другие) с одной стороны, так и тех, которые разрабатываются исключительно для текущего веб-сайта, под одной общей крышей (set




Django security fix released

Как сегодня сообщил оффициальный блог разработчиков Django, до недавнего времени в форме входа в админ-панель существовала потенциальная дыра безопасности. И именно поэтому они предоставили обновления для транка (ревизия 7521), версий 0.96 (0.96.2), 0.95 (0.95.3) и 0.91 (0.91.2) и попросили быстрейшим образом обновиться ;)

Больше об этом security fix'е вы можете прочитать на упомянутом выше блоге.




Расширение виджета для выбора даты в Django

В предыдущем посте я упомянул о виджете для выбора даты в Django. И все вроде бы хорошо, но этот виджет становится совершенно бесполезным, когда надо:

  • выбрать месяц день и год в другом порядке (например, в привычном день-месяц-год);
  • использовать трехбуквенные сокращения месяца, а не полное название
  • не выбирать день (например, май 2008)
  • не выбирать ни день, ни месяц (например, 2008 год)
  • добавить первым пустой <option>

И потому для этих случаев я смастерил очередной велосипед свой виджет, который устраняет все эти недостатки. Посмотреть как он работает можно здесь (поля Дата рождения, Год поступления, Год окончания, Период работы с, по).

Уже интересно?

Тогда получайте сам виджет:

import datetime, re
from time import strptime

from django.newform



Exception #07 video

Нашёл в блоге у Муркта ссылки на долгожданное видео с Exception #7.

Выложено 5 докладов:

Все части доступны на YouTube

Нашёл в блоге у Муркта ссылки на долгожданное видео с




Подсветка кода в markdown при помощи pygments

Решил прикрутить подсветку к markdown, благо он поддерживает плагины, но писать самоу не пришлось, ибо он уже написан и имя ему CodeHilite. Поддерживает 3 способа подсветки кода:

  • GNU Enscript
  • dp.SyntaxHighlighter
  • Pygments

Для добавления к работе с mardown достаточно скачать mdx_codehilite.py и кинуть его с sys.path. Для работы с pygments необходимо сгенерировать css-файл подсветки кода ну и подключить его к странице в которой будет выводиться код:

pygmentize -f html -S colorful -a .codehilite > pygments.css

Далее всё просто:

>>> import markdown
>>> txt = """
...     :::python
...     #comment
...     print "hel



fcgi vs scgi vs cherrypy (web.py dev server)

Приспичило посмотреть что есть scgi и чем он лучше. Тестил на lighttpd 1.49, возможно по этому результаты немного отличается от предыдущих тестов

Тестил при помощи ab на локалхосте. На простом приложении на web.py 0.23 для scgi:

slav0nic@sl:~$ cat /var/www/test/code.fcgi

конфиг для mod_scgi:

scgi.server = ( "/code.fcgi" => ((   
    "host" => "127.0.0.1",
    "port" => 4000,
    "max-procs" =&g



Как использовать xmlrpc c Zope3

В статье на простом примере дан краткий рассказ об использовании xmlrpc в Zope3.