Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3487 posts.

Django » ajax/jquery в django » Июль 29, 2011 12:24:54

Необходимо с помощью ajax добавлять и удалять сообщения. Использую jquery и следующий код:
<script type="text/javascript">

function addProductReview(e, functn){
e.preventDefault();
var review_form = jQuery(e.target);
jQuery.ajax({
url: review_form.attr('action'),
type: review_form.attr('method'),
data: review_form.serialize() + review_form.find('input').attr('name') ,
dataType: 'json',
success: function(json){
if (json.success == "True"){
functn(json);
}
},
error: function(xhr, ajaxOptions, thrownError){
alert('Error')
}
});
};

function Remove_message(json){
//alert(json.name);
var inpt = $("input[name=" + json.name + "]").parent()
inpt.parent().parent().remove();
//alert("remove");
}

function Add_message_to_list(json){
$(json.alltopic).each(function(index) {
var tds = '<div class="news-line-right">';
tds+='<div class="news-line"><img src="/' + json.alltopic[index][1] + '" id="image-style"></div>';
tds+='<div class="news-line">' + json.alltopic[index][0] + '</div>';
tds+='<div class="news-line"><form action="{% url del_message %}" method="post" class = "bttn"><input type="submit" value="Del ' + json.alltopic[index][2] + '" name="' + json.alltopic[index][2] + '" ></form></div>';
$('#html_add div:last').after(tds);
});
}


$(document).ready(function(){
$("form#review").submit(function(e){
addProductReview(e, Add_to_message);
});

$("form.bttn").submit(function(e){
addProductReview(e, Remove_message);
});
});
</script>

<div class="news-line-right">
<div class="news-line"><img src="/{{ news.1 }}" id="image-style"></div>
<div class="news-line">{{ news.0 }}</div>
<div class="news-line">
<form action="{% url del_message %}" method="post" class = "bttn">
<input type="submit" value="Del {{ news.2 }}" name="{{ news.2 }}">
</form>
</div>
</div>
Данные отсылаются без проблем и новое сообщение добавляется правильно. Проблемы начинаются после того как я хочу удалить только-что добавленное сообщение. При клике на кнопку Del script не срабатывает, а страница обновляется. При этом Del других сообщений которые были добавлены ранее работают правильно. Не могу понять в чем проблема, может есть какая-то хитрость в использовании ajax в django?

Django » Не могу вывести данные » Июль 25, 2011 05:54:48

Приветствую! Начал изучать не так давно django и python. Задача состоит в том, что надо их нескольких таблиц вывести “name” в левый край и при нажатии на них должно по центру страницы выводится “description”. вот примеры кода

# models
class main_function_car_servies(models.Model): #Оснавная функция автосервиса
name = models.CharField(max_length = 30, verbose_name = u'имя функции автосервися')
description = models.TextField(max_length = 1000, verbose_name = u'описание')
active = models.BooleanField(verbose_name = u'активен', default = True)
sort = models.IntegerField(verbose_name = u'порядок', default = 0)

def __unicode__(self):
return self.name

class Meta:
verbose_name = u'функция автосервиса'
verbose_name_plural = u'функции автосервиса'
ordering = ['sort']

class role_users_car_servies(models.Model): # роль пользователся автосервиса

name = models.CharField(max_length = 30, verbose_name = u'имя пользователя автосервиса')
description = models.TextField(max_length = 1000, verbose_name = u'описание')
active = models.BooleanField(verbose_name = u'активен', default = True)
sort = models.IntegerField(verbose_name = u'порядок', default = 0)

def __unicode__(self):
return self.name

class Meta:
verbose_name = u'роль пользователя автосервиса'
verbose_name_plural = u'роли пользователя автосервиса'
ordering = ['sort']
#views
def role_fun(request):
list_auto = []
try:
list_auto.append(role_users_car_servies.objects.filter(active = True))
list_auto.append(main_function_car_servies.objects.filter(active = True))
return render_to_response('auto.html', {'list_auto': list_auto}, RequestContext(request))
except:
raise Http404()

def autodetail(request,nameid):
list_auto = []
try:
list_auto.append(role_users_car_servies.objects.filter(active = True))
list_auto.append(main_function_car_servies.objects.filter(active = True))
list_users = role_users_car_servies.objects.filter(active = True)
new_content = list_users.get(id=nameid)
return render_to_response('auto_detail.html', locals(), RequestContext(request))
except:
raise Http404()
#templates
{% if list_auto %}
{% for x1 in list_auto %}

{% for item1 in x1 %}
<li><a href="/auto_detail/{{ item1.id }}">{{item1.name}}</a>

{% endfor %}

{% endfor %}

{%endif%}
#urls
(r'^auto/$' , role_fun),
(r'^auto_detail/(?P<nameid>[0-9]{1,3})/$', autodetail),
Когда нажимаю на имена из первой таблицы описание выводится то,которое нужно, а вот когда нажимаю на имена из второй таблицы присваивается описание из первой таблицы.

Python для новичков » Универсальный сортировщик xml аттрибутов (по алфавиту в каждом теге) » Июль 24, 2011 19:07:21

Пытаюсь написать утилиту для сортировки xml атрибутов (выстраивание их по алфавиту в каждом теге)

Уже есть костяк, который делает переформатирование содержимого дом-дерева.
Но вот не могу разобраться как получить коллекцию xml атрибутов в minidom.

Использование: python xmlsrt.py file.xml
import sys
import os.path
from xml.dom.minidom import parse, parseString

def main():
print "xml=%s" % sys.argv[1]
datasource = open(sys.argv[1])
dom2 = parse(datasource)
f = open(sys.argv[1], 'w')
try:
f.write(dom2.toxml(None))
finally:
f.close()
return 0

if __name__ == "__main__":
main()
Пример xml:
<?xml version="1.0"?>
<TaskList Version="2.0">
<TaskCategory abc2="no" zzz="no" Handle="Uncategorized" Name="Uncategorized"
abc="no" zxy="no" />
</TaskList>
Сортировать нужно ignoreCase по имени xml атрибута

Python проекты » Ищу программеров для разработки крупного портала на Python +Django » Июль 21, 2011 16:11:24

так-же разработка модулей интегрирования между сайтами.
ответ нужен до 22 июля. тех задание пришлю. пишите на мыло livestd@yandex.ru или icq 319406476 skype livestd

Python для новичков » python и libtorrent » Июль 20, 2011 16:59:31

Всем доброго времени суток. Решаю для себя один вопрос =) пробую реализовать элементы протокола bittorrent. Собственно вопрос. Есть ли в данной библиотеке возможность скачивать не всю раздачу а некоторые файлы. Иными словами не могу понять через какую структуру данных следует делать отметки что качать, а что нет. Фрагмент кода который поставляется схож с example libtorrent.
import libtorrent as t

session = t.session()
session.listen_on(6868,6891)
info=t.torrent_info("flash.torrent")
#формируем структуру
#file = info.files()
#for i in xrange(0,len(file)):
# print file[i].path
#print "start download",info.files()[0].path
h = session.add_torrent(info, "/home/uev", storage_mode=t.storage_mode_t.storage_mode_sparse)
while (not h.is_seed()):
time.sleep(1)
s = h.status()
state_str = ['queued', 'checking', 'downloading metadata', \
'downloading', 'finished', 'seeding', 'allocating']
print '%.2f%% complete (down: %.1f kb/s up: %.1f kB/s peers: %d) %s' % \
(s.progress * 100, s.download_rate / 1000, s.upload_rate / 1000, \
s.num_peers, state_str[s.state])
Рылся в api libtorrent ято на офсайте бестолку ((( Может сталкивался кто-то. За ранее благодарен.

Mobile Python » Посоветуйте IDE для PythonCE на Windows Mobile » Июль 17, 2011 19:09:44

Обычные текстовые редакторы, пожалуйста, не предлагайте.
Лучше с исходниками и на самом Python.
Может есть такие на основе wxPython ?

Базы данных » Как использовать sqlalchemy-migrate если модели созданны декларативно » Июль 15, 2011 16:50:00

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

Mobile Python » Редактор IdleCE.py для PythonCE » Июль 14, 2011 03:01:01

Где можно достать редактор IdleCE.py последней версии для PythonCE? Перерыл весь инет, все ссылки дохлые…
Или вместо IdleCE можете посоветовать что-то лучшее?

Флейм » есть работа в режиме фриланса, facebook + werkzeug + mongo, $20-25/ч » Июль 13, 2011 23:47:47

Извините, если офтоп - перенесите куда нужно, пожалуйста.

Суть в следующем. Есть небольшая буржуйская контора (в калифорнии). Они пишут в основном приложения под фейсбук. Сейчас им нужен удаленный девелопер. По времени работы - месяц фултайма точно (вообще у них много проектов). Оплата почасовая, платят стабильно. Я с ними работал, очень адекватные ребята. Английский нужен на уровне общения в чате/по почте.

Технологии:
python + facebook + werkzeug + gevent + mongodb

Если интересно, пишите в приват. Можно также по скайпу.
Спасибо.

GUI » graphviz +wxPython какую библиотеку посоветуете? » Июль 13, 2011 21:43:58

Хочется добавить возможность работать с интерактивным графом (воспринимает клики в ветви и ноды)
Нашел http://mfgraph.sourceforge.net/ReleaseNotes0.4.html
может еще что посоветуете?

Network » Проблема с использованием python-oauth2 » Июль 13, 2011 17:26:54

Люди, пишу клиент к одному веб сервису. Сервис предоставляет авторизацию через OAuth Core 1.0a. Для коннекта использую python-oauth2
Вот что у них написано в документации:

- Use GET method for all requests
- Use HMAC-SHA1 to sign all requests
- Always provide oauth_callback in the request to request_token.ashx. If your product cannot receive a callback, use oauth_callback=oob
У меня следующая реализация коннекта:

import oauth2 as oauth
import urllib
htKey = 'тут ключ'
htSecret = 'тут ключ'
_htReq = "https://chpp.hattrick.org/oauth/request_token.ashx"
def test():
"""Test getting an access token via GET."""
consumer = oauth.Consumer(key=htKey, secret=htSecret)
client = oauth.Client(consumer)
client.set_signature_method(oauth.SignatureMethod_HMAC_SHA1())
resp, content = client.request(_htReq, "GET")
print content

if __name__ == '__main__':
test()
print 'Done.'
В результате всегда сваливаюсь:

401 - Unauthorized: Access is denied due to invalid credentials.
Хоть на самом ресурсе есть вариант проверить свои ключи и они проходят проверку нормально.
Что самое странное, этим же кодом попытался пройти авторизацию на твиттере, прошел нормально. Только подставлял коды выданные твиттером и коннект на твиттер.
Но есть одна разница:
ConsumerKey к первому сервису содержит два символа “=” у себя в теле, а ConsumerSecret “=” и два “+”. Может их преобразовать как-то необходимо чтобы посредством GET их можно было корректно передать?

Из поддержки мне вот так ответили:

When you get parameters in url, urldecode them before use, it may help you.
Пробовал через urllib перевести ключи, но не помогло (( Может кто еще что находит в этом коде неправильного?
Бьюсь над решением, но пока не нахожу.
Есть у кого идеи?

Ключи, к сожалению, показать не могу из-за лицензии:

The consumer secret must never be revealed to anyone. DO NOT include it in any requests, show it in any code samples (including open source) or in any way reveal it.

Python проекты » Нужен программист на Python. Парсер. » Июль 13, 2011 11:57:22

Ищем опытного программиста для доработки готовых скриптов многопотокового парсера написанного на Python, с расчетом на постоянное сотрудничество. Работа удаленная. Подробности в аське 379один296два5 или в личке.

Django » Модифицировать админку: добавить view permission » Июль 13, 2011 10:43:34

Добрый день!
Как известно, по умолчанию для каждой модели Django создает 3 разрешения: add, change, delete.

При использовании стандартной админки если у модели есть разрешение “add”, то:
- в список действий на странице admin/index.html добавляется ссылка “Add”
- при нажатии ссылки открывается change_form.html для добавления нового

Если у модели есть разрешение “change”, то:
- название модели становится ссылкой
- в список действий добавляется ссылка “Change”
- при нажатии ссылки открывается change_list.html (просмотр всех записей), а при выборе конкретной - change_form.html для изменения

Если у модели нет ни разрешения “add”, ни разрешения “change”, то она вообще в списке моделей в админке не отображается.

Возникла следующая проблема: нужно реализовать разрешение “view”, которое:
- разрешало бы только просматривать данные в виде списка, без возможности изменения (то есть по сути = разрешению “change” без возможности редактирования)
- отображалось бы на странице admin/index.html в виде ссылки “View”
- передавалось бы как в app_list.models.perms для admin/index.html
- учитывалось как и стандартные при syncdb (желательно)
- при одновременном задании разрешений change и view, наличие view игнорируется

Доки читал. Даже реализовал вручную для одной модели, заменив надпись “Change” на “View” и поменяв шаблоны change_form.html и change_list.html для данной модели. Но как это сделать грамотно и надёжно, чтобы можно было пользоваться в дальнейшем, пока в голове не укладывается. Если кто-то делал подобное или знает готовые решения, буду благодарен за более-менее детальное описание процедуры.

Базы данных » cx_oracle и python » Июль 12, 2011 11:44:42

Есть след пример:
python
import cx_Oracle
connection = cx_Oracle.connect('scott/tiger@10.100.1.21')
connection.close()

в случае если ip 10.100.1.21 отсуствует в сети данный пример висит 60 секунд. Вопрос: как уменьшить это время ? ( просто хочется чтобы в случае проблем с сетью скрипт сразу обламывался а не висел 60 секунд ) ?

GUI » GLUT mainloop. » Июль 12, 2011 10:25:55

Допустим вот такой код.

from OpenGL.GLUT import *
from OpenGL.GL import *

def display( *args ):
glClearColor(1.0, 1.0, 1.0, 0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glutSwapBuffers ( )

def main():
global wndW, wndH
glutInit( sys.argv )
glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH )
glutInitWindowSize( wndW, wndH )
glutInitWindowPosition( 0, 0 )
glutCreateWindow( sys.argv[0] )
glutDisplayFunc( display )
glutMainLoop( )
print("I cannot see this")

if __name__ == "__main__":
main()
Суть в том, что после закрытия окна - вывода строки “I cannot see this” нет!
Насколько понимаю - у GLUT-а есть обработчик события закрытия окна, и он валит всю прогу. Как быть?

Web » Flask структура большого проекта » Июль 11, 2011 16:37:50

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

Кто-нибудь может подсказать как лучше организовать структуру большого проекта в Flask?

пока видится что-то подобное:

/apps/
/apps/main/
/apps/auth/
/apps/blog/
/apps/pm/
/apps/photo/
и т.д.
т.е. теоретически это должны быть независимые apps, но думаю они все же будут использовать какие-то модели БД или еще что-то из других, поэтому видимо будут относительно зависимые.

структура отдельных apps:
__init__.py
db.py
urls.py
/static/css/
/static/js/
/static/templates/
+ какой-то скрипт, который скажем будет собирать и сжимать статические файлы в одну папку.
скажем /static/css/css_packed.css и /static/js/js_packed.css

непонятно как делать админку:

общий
/admin/
или
/apps/auth/admin/.../
/apps/photo/admin/.../
или нужно еще frontend отделять?

какие есть минусы? где-нибудь есть примеры правильной структуры?



кто-нибудь может еще плизз на пальцах объяснить для чего нужны Blueprint в Flask?


спасибо!

Python для новичков » поставить Python* на SLED11 » Июль 11, 2011 02:57:16

Есть предустановленна ОС SUSE Linux Enterprise Desktop SP11, установлен python2.6. Как доставить matplotlib, mayavi, scitools …? zypper не видит этих пакетов.


рискнул и добавил репозитории опенсусе, python-matplotlib установился, но
>>> import pylab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/pylab.py", line 1, in <module>
from matplotlib.pylab import *
File "/usr/lib/python2.6/site-packages/matplotlib/pylab.py", line 263, in <module>
from matplotlib.pyplot import *
File "/usr/lib/python2.6/site-packages/matplotlib/pyplot.py", line 95, in <module>
new_figure_manager, draw_if_interactive, show = pylab_setup()
File "/usr/lib/python2.6/site-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
globals(),locals(),[backend_name])
ImportError: No module named backend_tkagg

Python проекты » Ищу опытного программиста на Python или команду из Москвы » Июль 8, 2011 11:37:37

Ищу программиста для завершения крупного проекта и дальнейшей работы на Python-е…
Все подробности в личку.

Только из Москвы.

Network » Сокеты » Июль 8, 2011 09:16:29

У меня есть программа для неё нужно написать класс, который будет работать с сетью.
В программе стартуется 50 потоков. После чего каждый поток просит у другого класса список сайтов.
Вопрос: как реализовать сбор запрос страничек сайтов, используя прокси?
Я склоняюсь в варианту создать асинхронный сокет и для каждого потока регать запрос. Можно ли так сделать.. Или я что-то недопонимаю..?

Python для новичков » поиск в многомерном пространстве. » Июль 7, 2011 09:35:58

Уважаемые формучане! не подскажете библиотеку которая для коллекции объектов построит многомерный индекс. Хочется сделать что-то типа google search- чтобы в результате задания шаблонов для нескольких полей получить итератор на результаты поиска (или список результатов).

Предполагается, что поля можно упорядочивать (есть оператор <)
Если кто пользовался
http://code.google.com/p/pyrtree/
http://pypi.python.org/pypi/Rtree/
Поделитесь впечатлениями.