Проблема Flask-SQLAlchemy с запросом {Class} .query.all (), не получающим все данные из таблицы - PullRequest
0 голосов
/ 05 марта 2019

Я работаю над небольшим проектом Flask в Python 3.6.

Я пытаюсь работать с SQLAlchemy для управления небольшой базой данных SQLite3, и у меня возникают некоторые проблемы.

Вот модельЯ работаю с (переменная базы данных называется 'db'):

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=True)
    date_created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    deadline = db.Column(db.DateTime, nullable=True)
    date_closed = db.Column(db.DateTime, nullable=True)
    owner = db.Column(db.String(25), nullable=False)
    state = db.Column(db.Integer, nullable=False, default='0')
    priority = db.Column(db.Integer, nullable=False, default='0')
    project = db.Column(db.String(100), nullable=False)

Затем я вставил следующий материал, просто чтобы попробовать:

post_1 = Task(title='Task 1', owner='Guillaume', project='First Project')
post_2 = Task(title='Task 2', owner='Guillaume', project='First Project')
post_3 = Task(title='Task 3', owner='Jiji', project='Second Project')

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

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

Task.query.all()

Iдумал, что я просто получу в ответ список всех данных для моих 3 постов, но я получаю следующее, которое не понимаю почему:

[<Task 1>, <Task 2>, <Task 3>]

Может кто-нибудь объяснить это и помочь мне получитьсписок со всеми данными?:)

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Так что, если вы хотите, например, список заголовков, вы можете использовать понимание списка

titles = [T.title for T in Task.query.all()]
0 голосов
/ 05 марта 2019

Я не знаю Flask-SQLAlchemy, но, как пользователь sqlalchemy, я думаю, что есть шанс, что каждый элемент в вашем списке - это Task экземпляр, отображающий фактические данные через атрибуты.

Попробуйтепросмотреть доступные атрибуты:

>>> dir(Task.query.all()[0])

Что-то вроде этого должно показать вам ваши данные:

for task in Task.query.all():
    print(task.id, task.title, task.content, task.date_created)  # etc...
...