Below is the text of the page https://web-brains.com/ stored 2008-01-03 by archive.org.ua. The original page over time could change. View as original html

Posts

Веб мозги [/] От питоновода питоноводам о python, django, linux и других ништяках About Trac login close Login with password Forgot password? Login with OpenID Разворачивание django-приложения под сервером nginx 09 . 09 . 2007 10:13 | 4 comments | 0 pingbacks | django , python , nginx , production В этой статье я расскажу о том, как перенести ваш django-проект на боевой сервер под управлением nginx. Допустим, наш сайт называется foo.ru, а проект мы будем хранить в каталоге /web/foo.ru/web_site. Скопируем все файлы на сервер в этот каталог и сделаем syncdb. Теперь надо проверить, чтобы переменная TEMPLATE_DIRS в settings.py содержала абсолютные пути. Хотя отладочный сервер Django позволяет использовать относительные имена в этой переменной, под nginx это вызовет ошибку при загрузке шаблонов. Настройка MEDIA_ROOT тоже должна содержать абсолютный путь. Допустим, она равна /web/foo.ru/web_site/pub/. continue reading Backup данных на VDS 06 . 09 . 2007 10:33 | 0 comments | 0 pingbacks | backup , shell , script Сегодня спустя 1.5 года использования VDS я решил написать скрипт для бэкапа данных. Я писал и отлаживал его 10-15 минут. Из-за того, что у меня не было такого скрипта раньше, я однажды потерял данные форума it-omsk.com за месяц ) Зачастаю цена создания постоянного дублирования данных ничтожна по сравнению с убытками от их потери, однако мы всё равно продолжаем надеяться на авось. Мне кажется, что не я один такой безалаберный. В общем, бэкапы - это круто ) continue reading AJAX -валидация форм 27 . 08 . 2007 16:41 | 0 comments | 0 pingbacks | ajax , newforms , javascript , validation , python , django Краткая заметка о том как валидировать формы не перезагружая страницу в браузере. Я делал всё на базисе слайдов с конференции Oscon - AJAX -формам там посвящены кадры с 67 по 84. Слайды можно смотреть тут [toys.jacobian.org]. continue reading Декоратор для удобного постраничного разбиения 13 . 08 . 2007 2:35 | 0 comments | 0 pingbacks | pagination , decorator , python , django , templatetag Стандартное решение предлагаемое джанго для постраничного разбиения списка объектов - это класс django.core.paginator.ObjectPaginator Здесь можно посмотреть примеры использования ObjectPaginator [djangoproject.com] Однако, использование ObjectPaginator в голом виде не совсем удобно. В самом деле, нужно: - извлечь номер страницы из GET -данных или URL запроса - создать QuerySet объектов для пагинации - создать ObjectPaginator, передав ему этот QuerySet - получить объекты текущей страницы, путём вызова метода get_page у пагинатора continue reading Cлайды докладов о Django с конференции OSCON 2007 25 . 07 . 2007 5:56 | 0 comments | 0 pingbacks | python , django , oscon Довольно информативно даже без аудиозаписи самих докладов ) Рассмотрены следующие темы: - Тестирование - Middleware - Сигналы - Использование AJAX в формах - Написание своих шаблонных тэгов - Создание своих полей форм - OpenID - Оптимизация работы сервера - GIS Посмотреть слайды можно здесь [toys.jacobian.org] в формате HTML + PNG . Страницы: « 1 2 3 4 5 » Last comments Igorek » Жду с нетерпением … ... Igorek » Кстати openid глючит на подтверждении завалился в& ... Igorek » Ну к примеру можно привести сочетание Zope/pyth ... lorien » На самом деле я к этой штуке успел ещё одну мега в ... lorien » Как-то сочетание django/python слух/глаз режет, а ... Last posts Просмотр SQL запросов, сделанных Django ORM Настройка awstats, nginx и logrotate Утечка памяти в Django ORM Деньги, деньги, дребеденьги. select_related() and ForeignKey(null=True) Useful information Blog feed Comments feed Tags javascript pybb документация seo oscon форум python logrotate shell orm authentication validation byteflow блог pagination ajax деньги django template templatetag статистика бабло debugging middleware fastcgi script awstats backup foreignkey backend production decorator sape select_related newforms memoryleak punbb sql rubyonrails nginx Advertize курс антицеллюлитного массажа сувенирный шоколад Мероприятие.ru - корпоративные вечеринки, организация праздников в Москве и др. праздники спортивные тренажеры Волгореченск Лечение Израиль: новый сайт о лечении в израиле и реклама звоните и узнавайте webmaster: lorien debug sql count: 20, sql time: 0.026 time: 0.001 SELECT COUNT ( * ) FROM ` blog_post ` WHERE (( NOT ( ` blog_post ` . ` date ` > 2008 - 01 - 03 22 : 51 : 29 . 208812 ))) time: 0.003 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE (( NOT ( ` blog_post ` . ` date ` > 2008 - 01 - 03 22 : 51 : 29 . 208812 ))) ORDER BY ` blog_post ` . ` date ` DESC LIMIT 10 , 5 time: 0.001 SELECT ` comment_nodes ` . ` id ` , ` comment_nodes ` . ` user_id ` , ` comment_nodes ` . ` pub_date ` , ` comment_nodes ` . ` body ` , ` comment_nodes ` . ` body_html ` , ` comment_nodes ` . ` reply_to_id ` , ` comment_nodes ` . ` approved ` , ` comment_nodes ` . ` content_type_id ` , ` comment_nodes ` . ` object_id ` , ` comment_nodes ` . ` lft ` , ` comment_nodes ` . ` rght ` FROM ` comment_nodes ` ORDER BY ` comment_nodes ` . ` pub_date ` DESC LIMIT 5 time: 0.001 SELECT ` auth_user ` . ` id ` , ` auth_user ` . ` username ` , ` auth_user ` . ` first_name ` , ` auth_user ` . ` last_name ` , ` auth_user ` . ` email ` , ` auth_user ` . ` password ` , ` auth_user ` . ` is_staff ` , ` auth_user ` . ` is_active ` , ` auth_user ` . ` is_superuser ` , ` auth_user ` . ` last_login ` , ` auth_user ` . ` date_joined ` , ` auth_user ` . ` site ` , ` auth_user ` . ` email_new ` FROM ` auth_user ` WHERE ( ` auth_user ` . ` id ` = 23 ) time: 0.001 SELECT ` django_content_type ` . ` id ` , ` django_content_type ` . ` name ` , ` django_content_type ` . ` app_label ` , ` django_content_type ` . ` model ` FROM ` django_content_type ` WHERE ( ` django_content_type ` . ` id ` = 12 ) time: 0.001 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE ( ` blog_post ` . ` id ` = 22 ) time: 0.001 SELECT ` auth_user ` . ` id ` , ` auth_user ` . ` username ` , ` auth_user ` . ` first_name ` , ` auth_user ` . ` last_name ` , ` auth_user ` . ` email ` , ` auth_user ` . ` password ` , ` auth_user ` . ` is_staff ` , ` auth_user ` . ` is_active ` , ` auth_user ` . ` is_superuser ` , ` auth_user ` . ` last_login ` , ` auth_user ` . ` date_joined ` , ` auth_user ` . ` site ` , ` auth_user ` . ` email_new ` FROM ` auth_user ` WHERE ( ` auth_user ` . ` id ` = 23 ) time: 0.001 SELECT ` django_content_type ` . ` id ` , ` django_content_type ` . ` name ` , ` django_content_type ` . ` app_label ` , ` django_content_type ` . ` model ` FROM ` django_content_type ` WHERE ( ` django_content_type ` . ` id ` = 12 ) time: 0.001 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE ( ` blog_post ` . ` id ` = 20 ) time: 0.001 SELECT ` auth_user ` . ` id ` , ` auth_user ` . ` username ` , ` auth_user ` . ` first_name ` , ` auth_user ` . ` last_name ` , ` auth_user ` . ` email ` , ` auth_user ` . ` password ` , ` auth_user ` . ` is_staff ` , ` auth_user ` . ` is_active ` , ` auth_user ` . ` is_superuser ` , ` auth_user ` . ` last_login ` , ` auth_user ` . ` date_joined ` , ` auth_user ` . ` site ` , ` auth_user ` . ` email_new ` FROM ` auth_user ` WHERE ( ` auth_user ` . ` id ` = 23 ) time: 0.001 SELECT ` django_content_type ` . ` id ` , ` django_content_type ` . ` name ` , ` django_content_type ` . ` app_label ` , ` django_content_type ` . ` model ` FROM ` django_content_type ` WHERE ( ` django_content_type ` . ` id ` = 12 ) time: 0.001 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE ( ` blog_post ` . ` id ` = 20 ) time: 0.001 SELECT ` auth_user ` . ` id ` , ` auth_user ` . ` username ` , ` auth_user ` . ` first_name ` , ` auth_user ` . ` last_name ` , ` auth_user ` . ` email ` , ` auth_user ` . ` password ` , ` auth_user ` . ` is_staff ` , ` auth_user ` . ` is_active ` , ` auth_user ` . ` is_superuser ` , ` auth_user ` . ` last_login ` , ` auth_user ` . ` date_joined ` , ` auth_user ` . ` site ` , ` auth_user ` . ` email_new ` FROM ` auth_user ` WHERE ( ` auth_user ` . ` id ` = 1 ) time: 0.001 SELECT ` django_content_type ` . ` id ` , ` django_content_type ` . ` name ` , ` django_content_type ` . ` app_label ` , ` django_content_type ` . ` model ` FROM ` django_content_type ` WHERE ( ` django_content_type ` . ` id ` = 12 ) time: 0.001 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE ( ` blog_post ` . ` id ` = 22 ) time: 0.001 SELECT ` auth_user ` . ` id ` , ` auth_user ` . ` username ` , ` auth_user ` . ` first_name ` , ` auth_user ` . ` last_name ` , ` auth_user ` . ` email ` , ` auth_user ` . ` password ` , ` auth_user ` . ` is_staff ` , ` auth_user ` . ` is_active ` , ` auth_user ` . ` is_superuser ` , ` auth_user ` . ` last_login ` , ` auth_user ` . ` date_joined ` , ` auth_user ` . ` site ` , ` auth_user ` . ` email_new ` FROM ` auth_user ` WHERE ( ` auth_user ` . ` id ` = 1 ) time: 0.001 SELECT ` django_content_type ` . ` id ` , ` django_content_type ` . ` name ` , ` django_content_type ` . ` app_label ` , ` django_content_type ` . ` model ` FROM ` django_content_type ` WHERE ( ` django_content_type ` . ` id ` = 12 ) time: 0.001 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` WHERE ( ` blog_post ` . ` id ` = 20 ) time: 0.004 SELECT ` blog_post ` . ` id ` , ` blog_post ` . ` author_id ` , ` blog_post ` . ` name ` , ` blog_post ` . ` slug ` , ` blog_post ` . ` text ` , ` blog_post ` . ` render_method ` , ` blog_post ` . ` html ` , ` blog_post ` . ` date ` , ` blog_post ` . ` enable_comments ` , ` blog_post ` . ` tags ` ,( SELECT COUNT ( * ) FROM comment_nodes , django_content_type WHERE comment_nodes . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND comment_nodes . object_id = blog_post . id AND comment_nodes . approved ) AS ` approved_comments_count ` , ( SELECT COUNT ( * ) FROM pingback , django_content_type WHERE pingback . content_type_id = django_content_type . id AND django_content_type . model = 'post' AND pingback . object_id = blog_post . id ) AS ` pingback_count ` FROM ` blog_post ` ORDER BY ` blog_post ` . ` date ` DESC LIMIT 5 time: 0.002 SELECT DISTINCT ` tag ` . id , ` tag ` . name , COUNT ( ` blog_post ` . ` id ` ) FROM ` tag ` INNER JOIN ` tagged_item ` ON ` tag ` . id = ` tagged_item ` . tag_id INNER JOIN ` blog_post ` ON ` tagged_item ` . object_id = ` blog_post ` . ` id ` WHERE ` tagged_item ` . content_type_id = 12 GROUP BY ` tag ` . id , ` tag ` . name ORDER BY ` tag ` . name ASC