Flask -SQLAlchemy: невозможно запросить из базы данных пользователей - PullRequest
0 голосов
/ 31 января 2020

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

Я создал маршрут со следующим кодом:

@main_bp.route('/users', methods=['GET'])
@login_required
def userInfo():
    from .models import User
    q = User.query.all()
    return str(q)

В итоге возвращается [], хотя я точно знаю, что в базе данных есть пользователи. Кроме того, при выборе одной записи я могу получить имя пользователя следующим образом:

def userInfo():
    from .models import User
    q = User.query.first()
    return str(q.username)

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

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Ваш код работает на меня. У меня также есть «Пользователь» в sqlalchemy, и если я копирую ваш код, мне нужно только изменить имя приложения, и оно работает:

@app.route('/users', methods=['GET'])
@login_required
def userInfo():
  from .models import User
  q = User.query.all()
  return str(q)

Если вы уверены, что у вас есть пользователи в БД, может этот код не выполняется? Что-то странное: избыточный маршрут?

0 голосов
/ 31 января 2020

Это, конечно, странная ошибка. Попробуйте выполнить цикл q и добавить имена для двойной проверки следующим образом:

@main_bp.route('/users', methods=['GET'])
@login_required
def userInfo():
    from .models import User
    users = User.query.all()
    result = ''
    for u in users:
        result += str(u.username)

    return result

Проверьте, есть ли что-нибудь там.

...