Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sql возвращаемые значения 
:(
    Опции темы
ecspertiza
Дата 23.3.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Всем привет! Использую Python 2.6 +Django 1.1.1 Нужно сделать запрос к БД, не использую модели ибо запрос будет довольно сложный и с моделями придется помучатся, делаю вот что

создаю класс

Код


class itemSubject():
    
    def __init__(self):
        self.name = ''
        self.left_id = 0
        self.right_id = 0

 

список таких классов нужно будет вернуть шаблону

далее сама ф-ция 

Код

def loadSubjectQuery(left_id,right_id):    
    cursor = connection.cursor()
    cursor.execute("select `name`,`left`,`right` subject")
    
    sp = []
    
    for row in cursor.fetchone():
        i = itemSubject()
        i.name = row[0]
        i.left_id = row[1]
        i.right_id = row[2]
        sp[1:1] = [i]
    
    return sp


И вроде бы все не плохо но в этом месте мне Django выдает ошибочку 
Код

Exception Type:    TypeError
Exception Value:    'long' object is unsubscriptable


Не подскажете к чему бы это могло быть?

если например написать вот так

Код

        i.name = 'name'
        i.left_id = 1
        i.right_id = 2


то тогда все хорошо отрабатывает, я так думаю что row[0] возвращает не тот тип? или я неправ?



--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
ecspertiza
Дата 23.3.2010, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



я шляпа smile стоило написать fetchall вместо fetchone


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
_Viper_
Дата 23.3.2010, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 8.11.2006

Репутация: нет
Всего: 11



Поидее можно написать просто "for row in cursor" и это будет оптимальней, чем  fetchall.
PM MAIL   Вверх
ecspertiza
Дата 24.3.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Да точно, можно, так гораздо оптимальнее, спасибо.


--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0730 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.