2016-10-13 3 views
0

Я хотел бы перейти к командной строке с импортированными моделями для запуска некоторых запросов.Web2py - mysql - как DAL?

У меня есть базы данных MySQL, я бегаю следующую команду для достижения поставленной задачи

$ python web2py.py -S appname -M 
..... 
>>> db = DAL('mysql://user:[email protected]/db_name') 

Вышеприведенная команда не бросает какую-либо ошибку. Имя пользователя/pass и db верны, так как я могу успешно запросить данные в приглашении mysql.

Но теперь после консультаций с Docs http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#select, я пытаюсь сделать выбор на столе, который дает мне ошибку ниже

$ db(db.category).select() 
AttributeError: 'DAL' object has no attribute 'category' 

Можете ли вы помочь мне здесь? Как я могу получить доступ к данным. Я ищу, чтобы сделать это DAL, так как мне нужно добавить его в контроллеры.

FYI .. Я могу правильно использовать ExecuteSQL, без ошибок

$ db.executesql('select * from category;') 
((1L, 
    u'tmp', 
    u'T', 
    datetime.datetime(2016, 9, 27, 16, 14, 59), 
    None, 
    datetime.datetime(2016, 9, 27, 16, 14, 59), 
    None)) 

ответ

0

db уже определено в моделях, которые выполняются, так как вы прошли опцию -M. Нет необходимости определять это снова!

+0

Что значит «Нет необходимости определять это снова!» - что ему нужно сделать, чтобы заставить код работать? –

+0

Сделав 'db = DAL ('mysql: // user: password @ localhost/db_name'), он заменяет предыдущий объект' db', определенный в своих моделях. Поэтому ему просто нужно удалить эту линию. – cdonts