Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3493 posts.

Django » Не знаю як за допогою Django ORM отримати потрібні дані » Июнь 27, 2009 15:00:19

В мене є модель
class Subject(models.Model):
name = models.CharField(max_length=200)


class Referat(models.Model):
subject = models.ForeignKey(Subject)
name = models.CharField(max_length=600)
filename = models.FileField(upload_to='tmp', max_length=200)
dowloaded_times = models.IntegerField()
Як мені отримати словник з всіма предметами і кількістю рефератів кожного предмету

Джанга 1.02 без агрегації
Буду дуже вдячний

Django » bug- и на mod_python » Июнь 25, 2009 13:57:34

Привет всем.

Вот сталкнулся с неожиданной проблемой, что под mod_python некоторые участки кода не работают.
То есть раньше я запускал проект под fcgi и в девелоп сервер джанго, но вот попробовал развернуть на mod_python и возникли проблемы.

Как оказывается mod_python есть очень проблемный?

например я подключил аппу supercaptha , но под модпайтон она перестала работать то есть не валидит текст который набирается в поле ввода для проверки.

есть и другии проблемы.

кто может поделиться опытом работы с модпитоном и борьбы с его глюками.
может есть статейка какая по несовместимости кода при использовании модпитон итп

Буду всем благодарен за инфорацию.

Python для новичков » Подключение к dbus на удаленной машине. Помогите разобраться. » Июнь 22, 2009 11:34:47

Документации по python-dbus мизер, а по поводу python-dbus over tcp и вовсе не нашел.
Может кто работал?

Задача. есть некая много компонентая система. взаимодействие между компонентами осущевляется через dbus.
также есь возможность подключиться к этой системе удаленно и взаимодействовать с нею.

не пойму как подключиться к удаленной шине?

Django » AOP+глобавльный доступ к request.user » Июнь 21, 2009 21:03:15

вообщем использую АОП для отслеживаний некоторых вызовов методов моделей, внутри своих АОП оберток, нужно получить глобальный доступ к request.user, как правильнее всего организовать такой доступ к этому объекту?

GUI » Операции с элементами QPolygon » Июнь 15, 2009 19:54:26

Мне нужно переместить полигон или определенную его точку, но никакой из двух описанных ниже методов не изменяет мне точки полигона. Можно, конечно использовать обычный список в качеств полигона, но тогда я не смогу использовать нужный мне метод QPolygonF.containsPoint().

from PyQt4.QtGui import *
from PyQt4.QtCore import *

if __name__ == '__main__':
poly = QPolygonF()
poly.append(QPointF(1,1))
poly.append(QPointF(1,1))
poly.append(QPointF(1,1))

for point in poly:
point.setX(5)

for i in range(len(poly)):
poly[i].setX(5)
p.s. сейчас придумал один способ:
Использовать QPolygonF(poly).containsPoint(), где poly - список QPointF, но мне не очень нравится это прыгание между типами. Если кто-то предложит решение лучше - буду благодарен.

GUI » [PyGTK] Как лучше всего задавать padding при "упаковке" виджетов? » Июнь 12, 2009 16:29:13

При упакове виджетов (например, для gtk.VBox - start_pack) можно указать размер поля (padding) для того, что бы между виджетами было расстояние. Так вот вызовов start_pack при построении интерфейса (в данном случае не используется Glade) довольно-таки много и классов, в которых формируется GUI тоже. Вопрос в том, как лучше всего передавать такие настройки? Проще говоря, если я потом захочу, что бы расстояние между виджетами было не 5, а 7 пикселей, не хотелось бы править много файлов. Пока что решаю это на уровне переменной класса self._def_padding, которая используется во всех упаковках. Но может есть более элегантный способ? Например с помощью редактирования непосредственно тем GTK?

Базы данных » Подключение к ZODB через MySQL » Июнь 10, 2009 09:58:34

Доброго времени суток.
Пожалуйста, подскажите как подключиться к ZODB через MySQL или любую другую реляционную СУДБ (MS SQL, PostGreSQL и тд). Чтобы можно было нормально работать с данными, делать запросы и пр. Ищу уже долго но никак ничег оне могу найти, кроме инфы на оф. сайте “Zope имеет уровень абстракции ZSQL, позволяющий легко интегрировать систему с SQL серверами, будь то Oracle, PostgreSQL, MySQL или ODBC.”

но как это сделать - тишина…

Поясню, зачем оно надо: у нас стоит СЭД на основе ZOpe , но ее средств нехватает для создания отчетов, необходимых нам. Для этого и пытаюсь подключиться к ZODB, средством, которое понимаю (SQL-синтаксис)

Базы данных » Каким образом запрос делится на куски? » Июнь 6, 2009 11:47:28

Вот если мы SQLAlchemo'ский объект передаем паджинатору, то он быстро работает. А если обычный лист - результат API-шного запроса, то при каждом пэйджинге тормозится, видимо, каждый раз делит. А как бы так исхитриться, чтобы и обычный запрос по кусочкам делил на какждорй странице паджинатора?
Надеюсь, понятно сформулировал

GUI » PyGTK GtkList/TreeView - multiheader » Июнь 3, 2009 16:50:39

Ребята, скажите пожалуйста кто нибудь реализовывал на указанных компонентах многострочные заголовки для колонок с возможностью объединения как по горизонтали нескольких колонок в заголовке, так и во вертикали несколько ячеек в строках заголовка.

Такое требуется во многих финансовых отчетных программах.
Поделитесь опытом, пожалуйста.

Web » Adobe AIR » Июнь 3, 2009 15:44:19

В интернете поискал - есть какие-то обрывки фраз об интеграции Python и Adobe AIR, дабы разрабатывать приложения было удобнее. Кто-нибудь что-нибудь об этом знает?

Python для новичков » Teredo » Июнь 2, 2009 22:37:26

Здравствуйте! Интересует протокол Teredo, точнее как его можно использовать в программах на питоне.
Сам знаю мало, прошу сильно не ругать, сталкивался только с IPv4 и мне трудно понять новую идею, хотя и нравится.
Реализацию увидел в Utorrent под вистой. Там данные передаются через teredo, если указать это в опциях. И это показалось мне очень удобным способом, ведь своего постоянного ip-адреса у меня нет.

Если есть примеры реализаций, или другое подобное, но более простое, с нетерпением жду! :)

GUI » wx.MessageBox Не понятна логика.. » Июнь 1, 2009 10:47:20

Всем привет.
Есть код:
# -*- coding: cp1251 -*-
import wx

class Panel(wx.Panel):
def __init__(self, parent, *args, **kwargs):
wx.Panel.__init__(self, parent, *args, **kwargs)
sizer = wx.BoxSizer(wx.VERTICAL)
self.dat = wx.DatePickerCtrl(self, style=wx.DP_DROPDOWN)
sizer.Add(self.dat)
self.SetSizer(sizer)
wx.EVT_DATE_CHANGED(self.dat, self.dat.GetId(), self.DateChanged)
def DateChanged(self, evt):
wx.MessageBox('message text', 'message caption', wx.ICON_ERROR|wx.OK, self)
class MainFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = Panel(self)

class App(wx.App):
def __init__(self):
wx.App.__init__(self)
# wx.App.__init__(self, True, 'log.txt')
frame = MainFrame(None)
frame.Show(True)

if __name__ == "__main__":
app = App()
app.MainLoop()
При попытке изменить дату, выпадает календарь на текущий месяц. В левом и правом уголках этого календаря есть кнопки для прокрутки месяца – месяц назад и месяц вперед соответственно. Но это все стандартно. Так вот, при клике по одной из этих кнопок, событие изменения даты обрабатывается в методе DateChanged и , собственно, в нем вызов MessageBox. Вроде все нормально, никакиз аномалий. Но..когда сообщение закрываешь, нажатая кнопка на каледаре “западает” – месяца начинают переключаться беспрерывно и, также беспрерывно, начинают появляться новые сообщения. Переписал код так:
# -*- coding: cp1251 -*-

import wx

class Panel(wx.Panel):
def __init__(self, parent, *args, **kwargs):
wx.Panel.__init__(self, parent, *args, **kwargs)
sizer = wx.BoxSizer(wx.VERTICAL)
self.dat = wx.DatePickerCtrl(self, style=wx.DP_DROPDOWN)
sizer.Add(self.dat)
self.SetSizer(sizer)
wx.EVT_DATE_CHANGED(self.dat, self.dat.GetId(), self.DateChanged)
def show_mes(self, text):
wx.MessageBox(text,'message caption', wx.ICON_ERROR|wx.OK, self)
def DateChanged(self, evt):
wx.CallAfter(self.show_mes, 'message text')
class MainFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.panel = Panel(self)

class App(wx.App):
def __init__(self):
wx.App.__init__(self)
# wx.App.__init__(self, True, 'log.txt')
frame = MainFrame(None)
frame.Show(True)

if __name__ == "__main__":
app = App()
app.MainLoop()
проблема решилась. Но все таки осталось непонятным, почему вообще появилась такая проблема “зацикливания” события? Проблема в кривых руках или MessageBox извращенным способом играется с какими-то событиями? Кто-нибудь может все по полочкам разложить?

З.Ы. Думал как это лучше объяснить, надеюсь получилось понятно :)

Web » Кто-нибудь использует Pyjamas? » Май 29, 2009 02:55:04

http://pyjs.org/

Здесь он упоминается пару раз мельком, что мол есть такой проект, да заброшен. Но вот смотрю, последний релиз апрельский. Кому-нибудь пригождался?

Python для экспертов » pythonOCC + Qt4 » Май 27, 2009 10:11:12

Всем здравствуйте!
Может ли кто-нибудь помочь готовым примерчиком, как увязать python + OpenCASCADE + Qt4
Собственно заминка в том, чтобы отобразить 3D-сцену каскада на qt-форме

Pyramid / Pylons / TurboGears » i18n и routes » Май 26, 2009 07:28:51

Возникла потребность в i18n и хотелось бы реализовать его в ссылках как это везде принято, т.е. “/locale/*url”. У меня к тому же нужно что бы ссылки были без “/locale” и открывали язык по умолчанию. И по этому я сделал обертку:
def locale(map, *args, **kwargs):
map.connect("/:locale"+args[0],*args[1:],**kwargs)
map.connect(locale='en', *args, **kwargs)
Как можно это реализовать лучше?

GUI » wxPython IEHtmlWindow прокрутка страницы программно » Май 25, 2009 09:06:04

Привет всем.
Появилась некая трудность. Есть экземпляр IEHtmlWindow, в него подгружается html форматированный текст из переменной методом LoadString. Текст может быть очень длинным. Необходимо сразу после загрузки прокрутить весь текст вниз до конца.
Над проблемой размышлял с товарищем – безрезультатно. Пробовали метод SetScrollPos, не работает – ни ошибок, ни результата работы.
Также пробовали ScrollLines и ScrollPages – также неработают…
В итоге в html код вставили javascript, который после загрузки страницы сам ее прокручивает вниз и были счастливы :) Но не долго…
Оказалось, что не на всех машинах включен javascript…Поэтому и прокрутка, сделанная таким образом, несрабатывает.
# -*- coding: cp1251 -*-

import wx
from wx.lib.iewin import IEHtmlWindow

html = """<HTML><TITLE></TITLE><HEAD>
<script language="JavaScript">
function scroll()
{
h = getDocumentHeight();
setscroll(h)
}
function getDocumentHeight()
{
return (document.body.scrollHeight > document.body.offsetHeight)?
document.body.scrollHeight:
document.body.offsetHeight;
}
function setscroll(h)
{
window.scrollTo(0,h);
}
</script>
</HEAD>
<BODY onLoad="scroll();">
<p>Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
Форматированный текст Форматированный текст Форматированный текст
</BODY>
</HTML>"""

class Frame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent)
self.ie = IEHtmlWindow(self)
self.ie.LoadString(html)
# while self.ie.ScrollLines(1):
# pass
class App(wx.App):
def __init__(self):
wx.App.__init__(self, True, 'log.txt')
frame = Frame(None)
self.SetTopWindow(frame)
frame.Show()

if __name__ == "__main__":
app = App()
app.MainLoop()
1. Может кто сталкивался с такими вещами и знает почему не работает и как заставить IEHtmlWindow прокрутить текст?
2. Если 1ый вопрос не решится, то придется насильно включать javascript на клиентских машинах. Править реестр – первое что пришло в голову. Может есть иные методы?

GUI » Стандартные картинки для Toolbar'а » Май 23, 2009 11:59:29

Когда я создаю wx.MenuItem со стандартным идентификтором (например, wx.ID_NEW) она автоматически получает соответствующую иконку, специфичную для платформы, на которой запускается приложние. Есть ли возможность получить стандартные иконки для кнопок Toolbar'a?

Спасибо.

Network » telnet client под windows » Май 21, 2009 20:09:33

import sys
import telnetlib

HOST = "localhost"
tn = telnetlib.Telnet(HOST);
data = tn.read_very_eager()
print (data)
tn.close();
Может кто подскажет подключаюсь к windows telnet server и получаю пустую строку.

Python для новичков » Radmin + PrintScreen » Май 21, 2009 16:37:28

Привет всем!!!
Есть сервер Windows 2003 на нем настроен сервер терминалов и установлен Radmin и есть еще SSHd. Хочу чтобы при заходе браузером на страничку запускался скрипт, который бы запускал Radmin, проходил авторизацию, делал принтскрин и слаживал мне все это в папку. В принципе накодил такой, не доконца, до веб странички еще не добрался, и этот скрипт работает только при условии что запущен сеанс, а вот если подключиться через ssh и пнуть его, то не получается снять принскин, экзепшн вываливается, ну оно то и понятно, окна то нет. Как пофиксить или может есть какие другие пути решения?
Код скрипта:
import win32gui, win32ui, win32process, win32com.client
import os
import subprocess
import errno
import time
import sys
import win32api
import win32com.client

def get_screen(path):

hwnd = win32gui.GetDesktopWindow()
l,t,r,b = win32gui.GetWindowRect(hwnd)
h = b-t
w = r-l
hDC = win32gui.GetWindowDC(hwnd)
myDC = win32ui.CreateDCFromHandle(hDC)
newDC = myDC.CreateCompatibleDC()
myBitMap = win32ui.CreateBitmap()
myBitMap.CreateCompatibleBitmap(myDC, w, h)
newDC.SelectObject(myBitMap)
newDC.BitBlt((0,0),(w, h) , myDC, (0,0), win32con.SRCCOPY)
myBitMap.Paint(newDC)
myBitMap.SaveBitmapFile(newDC, path)

def radmin_auth(password, delay):

shell = win32com.client.Dispatch("WScript.Shell")
#shell.AppActivate("remote")
#win32api.Sleep(1000)
time.sleep(1)
shell.SendKeys(password)
shell.SendKeys("{TAB}")
time.sleep(1)
shell.SendKeys("{ENTER}")
time.sleep(delay)

#==========================================================

if __name__ == "__main__":

bankomat_name = { 'aaa:1' }

bankomat_ip = ['1.1.1.1]

bankomat_pass = ['123']
bankomat_delay = [3, ]
bankomat_photo = [ 'atmb1701.bmp' ]

try:
bankomat = sys.argv[1]
number = bankomat_name[bankomat]
except:
print "enter bankomat number"
sys.exit(1)
photo_path = "C:\\temp\\atmb\\"
path = "\"C:\\Program Files\\Radmin\\radmin.exe \" /connect:" + bankomat_ip[number] + ":4899 /noinput /fullscreen"
proc = subprocess.Popen(path)
time.sleep(1)
radmin_auth(bankomat_pass[number], bankomat_delay[number])
try:
get_screen(photo_path+bankomat_photo[number])
except:
print "can't get printscreen"
time.sleep(1)
proc.terminate()

Python для экспертов » pysvn cached creditials » Май 19, 2009 09:21:31

Подскажите, пожалуйста, может кто знает, как в pysvn узнать от имени какого пользователя я собираюсь сейчас совершать операции, если таковое было ранее сохранено в кеше?

простые не ответы на вопрос:
- на сайте тигриса напрямую ответа нету (или я не так смотрю)
- get_default_username - это не то
- .subversion читать не могу, он разный для разных ОС
- callback_get_login тоже не для того (или как-то можно заставить его вызываться всегда)
- бекдор с переспрашиванием не подойдёт, пароль был сохранён другим клиентом.