Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3493 posts.

Django » Сравнение данных в базе » Июнь 17, 2008 19:44:48

Здравствуйте.

Есть небольшая задача: необходимо сравнить данные, полученные из формы с записью в базе данных.
Например, есть модель:
class pc(models.Model):
    name = models.CharField(max_length=30, unique=True)
    user = models.CharField(max_length=30)
    location = models.CharField(max_length=30)
    monitor = models.CharField(max_length=255)
    ups = models.CharField(max_length=255)
    cpu = models.CharField(max_length=255)
    om = models.CharField(max_length=255)
    hdd = models.CharField(max_length=255)
    date_create = models.DateField()

и есть форма, из которой в эту таблицу набиваются данные. Задача состоит в том, чтобы при изменении данных таблицы (используется таже форма), те поля которые изменились записывать в другую таблицу. Т.е. нужно сравнивать данные из формы с данными из базы. Есть ли в Django какой-нибудь инструмент для этого? Или по “старинке” сравнивать словари?

Спасибо.

Django » Django-registration и DjangoUnicodeDecodeError » Июнь 15, 2008 19:44:58

Подскажите как с этим бороться. Вроде бы как прикрутил все нормально, но ошибка вылазит.
Использую django-registration 0.5 и Django trunk + добавил шаблоны т.к. в этой версии их убрали.
Когда заполняю данные регистрации и наживаю отправить то выдает DjangoUnicodeDecodeError. Может быть кто-то сталкивался?

Инструментальные средства разработки » Как настроить отступы в Eric? » Июнь 12, 2008 23:09:39

Пытаюсь настроить ширину отступов и табуляции в настройках Eric.
Установлен моноширинный шрифт Monospace, ширина отсупов и табуляции = 4
Шрифты перепробовал все, но они явно не моноширинные.
Зачем Eric их предлагает как моноширинные?
Так вот, ни каким боком не удалось заставить редактор Эрика отображать табуляцию(отступ) по 4 моноширинных знака. Ширина этой самой табуляции(отступа) возможно и 4 знака но не той ширины, что остальные. Кроме того, в поле настроек стиля, где отображаются четыре цифры примера, эти цифры отображаются не тем шрифтом который выбран, но размеры и плотность меняются. Путаница какая то.
Если заменять табуляцию пробелами, то отсупы нормализуются. Но мне не нравятся пробелы, я хочу табуляцию.
Для питона эти мелочи критичны.

Как решить проблему?
Платформа Linux Debian Etch

Побороть пока не смог.
Проверил также Geany, там с отступами вроде нормально, но глючит закрытие блоков кода.
Пока пишу в KDevelop, тяжеловат немного, но там перечисленные проблемы не наблюдаются.

Django » Проблемы с переводом » Июнь 11, 2008 11:45:32

Я пишу в шаблоне блок для перевода

{% blocktrans count news_not_seen as count %}
Inbox ({{count}} message)
{% plural %}
Inbox ({{count}} messages)
{% endblocktrans %}

Запускаю make-messages.py. Перевожу фразы с помощью утилиты gtranslator и запускаю compile-messages.py. Перезапускаю сервер и вижу что на моих страницах отображается везде переведенный текст, кроме того места, где я пытаюсь использовать {% plural %}. А если потом запустить опять make-messages.py -a, то в gtranslator-е в разделе неточные появляется

———————-оригинал——————————-

\n
Inbox·(%(count)s·message)\n
\n
Inbox·(%(count)s·messages)\n
———————переведенный текст——————–

\n
Входящие (%(count)s сообщение)\n
\n
Входящие·(%(count)s сообщений)\n
\n
Входящие (%(count)s сообщение)\n
\n
Входящие·(%(count)s сообщений)\n

И на страницах в местах где используется {% plural %} все равно остается непереведенный текст
Как это можно исправить?

Network » мастер-класс по twisted с exception #8 » Июнь 6, 2008 22:28:14

С изрядным опозданием выкладываю

Код - на google code
http://code.google.com/p/twistedmasterclass/
http://twistedmasterclass.googlecode.com/files/twistedmasterclass.tar.gz

Простейший пример клиент-сервер приложения+слайды.
Комментарии и пояснения отсутстствуют.
Это - рабочие материалы, созданные в процессе подготовки к мастер-классу. И ничего больше.

Инструментальные средства разработки » Eclipse » Май 30, 2008 23:52:25

А не знает ли кто, как к Eclipse + PyDev прикрутить контекстную Python-справку?
Вроде chm файл с дистрибутивом питона ставился, как как прикрутить, что-то не пойму :(

Django » Как подружить Django и php-хлам » Май 26, 2008 18:08:19

Кросспост из http://softwaremaniacs.org/forum/viewtopic.php?id=2028

Здравствуйте!

Задачка: поставить Джанго на боевой VPS с FreeBSD 6.3 и Apache 1.3

Осложняется тем, что хочется использовать mod_wsgi ( Trac еще поставить, к примеру). Судя по статьям mod_python кушает память хорошо, поэтому я его не рассматриваю.

И тут попадаем в неприятности: mod_wsgi 2.0 отказывается ставится на Apache 1.3 + на сервере живет пачка проектов на пхп 4.х, доставшихся по наследству. Трогать пхповые проекты не хочется вообще - старьё, много лапши, но это все живет, ну и нафиг ! smile

Т.е. вариантов пока 2:

1) апгрейдить Apache до 2.х (не факт, что не придется подымать пхповые проекты заново, править конфиги, ловить баги), ставить mod_wsgi
2) запускать на другом порту к примеру nginx с mod_wsgi и оттуда уже выпускать Джангу в веб.

Подскажите, может у кого были подобные грабли, как сделать так чтобы Джанга работала быстро (через mod_wsgi) и при этом жил пхп?
Какие еще есть варианты?

Спасибо

Web » python+php » Май 24, 2008 12:46:18

Настроил приложение через mod_wsgi
<VirtualHost *:80>
WSGIScriptAlias / c:/server/www/pylons.wsgi
</VirtualHost>
Подскажите как теперь заюзать php скрипты размещенные к примеру в папке c:/server/www/blog.

Django » Остановка выполнения по таймеру » Май 21, 2008 12:07:47

Есть некоторая функция, которая, в зависимости от полученных данных, может выполняться быстро, долго, или “всегда”:)
Надо сделать так, что, если функция выполняется дольше определенного промежутка времени, то мы её останавливаем и отправляем пользователю сообщение об этом.
Всё это обычно замечательно делается signal.alarm. Но из-за потоков, в Джанго сигналами сделать нельзя…
Спасибо.

Python для экспертов » Семинар по языку программирования Python: “Exception Masterclass #08” » Май 15, 2008 19:17:16

24 мая 2008 года в Киеве состоится семинар по языку программирования Python – Exception Masterclass #08. Семинар пройдёт в режиме «мастер-класс»: приглашённые гуру «вживую» пишут программный код и объясняют свои действия.

На мероприятии выступят признанные профессионалы в области программирования на языке Python: Иван Сагалаев (Яндекс, Москва), Андрей Светлов и Юрий Богданов (Softline, Киев), Андрей Татаринов (Яндекс, Москва).

Андрей Светлов и Юрий Богданов проведут мастер-класс по Twisted Framework. Основное внимание будет уделено системе обратных вызовов (deferred), а так же на ваших глазах с подробными комментариями будет написана система удалённого доступа наподобие telnet, предоставляющая консоль Python.

Мастер-класс Ивана Сагалаева посвящён популярному веб-фреймворку Django. Иван продемонстрирует встраивание Django в WSGI, затронет тему SQLAlchemy и покажет красивые способы «расшаривания» общих фрагментов шаблонов. Все эти темы не оставят равнодушными тех, кто был на Exception #06 с Иваном Сагалаевым.

Андрей Татаринов расскажет о способах обнаружения и устранении ситуаций, когда программа непрерывно занимает память и не отдает ее обратно, чтобы ее мог собрать сборщик мусора.

Мероприятие пройдёт в Международном Выставочном Центре, который находится возле метро Левобережная. Зал рассчитан на 260 человек.

Внимание! Вход – бесплатный.

Подробная информация: http://exception.org.ua/events/exception-masterclass-08/

Базы данных » sqlalchemy + oracle » Май 14, 2008 09:38:55

Народ помогите решить проблему:

надо сказать sqlalchemy, чтобы он перекодил (в utf-16 с 1251) ошибки с базы, а не возвращал последовательность байт в эксэпшн,

типа:
(<class ‘sqlalchemy.exceptions.DatabaseError’>, DatabaseError('(DatabaseError) ORA-01400: \xed\xe5\xe2\xee\xe7\xec\xee\xe6\xed\xee \xe2\xf1\xf2\xe0\xe2\xe8\xf2\xfc NULL \xe2 (“SCOTT”.“LDAP”.“ID”)\n',), <traceback object at 0x03657210>)

можно выдергивать последовательность и перекодить вручную или NLS_LANG в utf16 ставить, но это крайние варианты.

Решение нашлось: Можно перекодить не весь тупл sys.exc_info, а отдельно sys.exc_value, который чисто содержит исключение, полученное из БД.

Инструментальные средства разработки » работа с удаленным Python из Komodo IDE » Май 13, 2008 10:17:09

Здравствуйте. Никто не сталкивался с такой вещью? Если да, подскажите, pls, возможна ли удаленная отладка из Komodo IDE и как все это дело настроить? В хелпе не нашел

Mobile Python » Отправка SMS из PythonCE на WM5 » Апрель 24, 2008 10:41:30

Здравствуйте всем.
Уже несколько дней не могу найти нужную информацию….

Как отправить SMS из программы на Python CE 2.5. ОС WM5.
Уже разобрался как работать с COM-портом, а вот блин с отправкой SMS глухо.

Наводку дайте пожалуйста либо примерчик.
Заранее благодарен.

Pyramid / Pylons / TurboGears » Перспективность. » Апрель 23, 2008 12:20:34

Как сейчас у пайлонса с этим? TG под него косить будет, а google с yandex django используют.
Как там сейчас в разработке?

Django » to_python не вызывается » Апрель 22, 2008 14:51:05

Пререгружаю для charField to_python (проверяю чтобы символы были только те, которые есть в tactics_position).

from django.db import models

class TacticsField(models.CharField):
# __metaclass__ = models.ModelBase

def __init__(self, *args, **kwargs):
kwargs = 8
models.CharField.__init__(self, *args, **kwargs)

def to_python(self, value):
for p in value:
if p not in tactics_position:
raise validators.ValidationError, gettext_lazy(“This field is not valid.”)
x = 1
return Tactics(value)

Но to_python почему то не вызывается. В доке написано, что это лечится добавлением строки
__metaclass__ = models.SubfieldBase, но эта фишка ест только в новых версиях, а у меня 0.96. Каким образом можно сделать чтобы to_python вызывалось?

Django » Django + SQLAlchemy кто пробовал уже - поделитесь впечатлениями. » Апрель 19, 2008 23:13:18

Стоит ли оно того? На сколько преимущества от SA перевешивают головную боль от работы с неродным модулем? Или для желающих работать с SA есть Пилонсы и нечего к Джангистам с глупостями лезть?

GUI » wx.MediaCtrl » Апрель 18, 2008 23:26:27

Создаю wx.MediaCtrl
self.mc = wx.media.MediaCtrl(self, style=wx.SIMPLE_BORDER, size=wx.Size(200,400)
Но при загрузки видео в него большего размера происходит обрезание, а не масштабирование под эти размеры.
У меня вопрос: каким образом провести масштабирование?

Python для экспертов » получение public_key из сертификата » Апрель 12, 2008 15:18:30

Доброго времени суток.
столкнулся с проблемой: необходимо проверить данные, посылаемые с сервера. От этого сервера у меня есть сертификат ну и собственно данные с подписью. Я так понимаю, что для проверки подписи мне необходимо из этого сертификата получить public_key и иуже потом проверять.
как это сделать, я не нашел.
Помогите начинающему питонисту плз

Network » IPv6 и его адреса. » Апрель 2, 2008 15:57:54

Значит ситуация такая:

есть 2 хоста с адресами:
fe80::20c:29ff:fe1e:eb7e%4 и
fe80::205:29ff:fe1e:eb7e%5

На fe80::20c:29ff:fe1e:eb7e%4 поднят echo сервер (просто скриптик питоновский), есессно он ipv6 socket(AF_INET6 … ) порт 7777

Пытаюсь делать простым виндовым методом:

telnet fe80::20c:29ff:fe1e:eb7e%4 7777

работает, принимается, отдается..

Пишу клиента на питоне

from socket import *

s = socket(AF_INET6, SOCK_STREAM)
s.connect(('fe80::20c:29ff:fe1e:eb7e%4', 7777))
Возникает ошибка:

socket.error: A socket operation was attempted to an unreachable host

подозреваю, что неправильно введен адрес, потому как если с той же машины локально натравить на этот сервер клиента по адресу ‘::1’ то все воркет.

Как вводить правильные ipv6 адреса в этом случае?

Вообще сведений в сети не нашел по этому поводу :(

Кстати вызов getaddrinfo из socket дает адрес именно в такой вот форме, что передаю в connect.

Что делать и кто виноват? (с) :)

—————

Все нашел

s.connect(('fe80::20c:29ff:fe1e:eb7e', 7777, 0, 4))

Вот так надо :)

Базы данных » Не пойму где ошибка : MySQLdb » Март 31, 2008 12:24:14

Подскажите где ошибка, не могу найти сам…
Вроде пример простой … а не получается…
#!/usr/bin/env python
#coding:utf-8

import MySQLdb

db = MySQLdb.connect(host="localhost", db="dbname", user="stat", passwd="11112222")

c = db.cursor()
c.execute=('SELECT count(*) FROM ipacct LIMIT 1;')
db.commit()
result = c.fetchone()

c.close()
db.close()
Все… проблема решена.
Видимо устал сильно…
Правильно так : c.execute('SELECT count(*) FROM ipacct LIMIT 1;')