Я пытаюсь создать веб-приложение на основе Flask, SQLAlchemy и Jinja2, но не могу получить значение объекта при создании соединения с SQLAlchemy.Например, у меня есть 2 таких объекта в моем models.py
:
def user:
id = dbcolumn (integer )
username =dbcolumn (varchar(whatever))
local_id = dbcolumn(integer)
def local:
id = dbcolumn (integer )
local_name =dbcolumn (varchar(whatever))
в моем файле routes.py
, если я сделаю:
qry = User.query.filter(id=1)
usertoshow = qry.first()
print(usertoshow)
...
return render_template('editaruser.html', form=form, user=userupd)
, результат при печати вернетсячто-то вроде <User James>
.Если я хочу показать результаты в формате HTML с Jinja, я просто делаю {{ user.username }}
, и данные отображаются правильно, хотя мне нужно сделать несколько объединений, чтобы собрать все необходимые данные.Например, когда я выполняю объединение, например:
qry = db.session.query(User, Local).join(Local, (Local.id==User.user_local_id))
print(qry)
userupd = qry.first()
print(userupd)
Запрос, возвращаемый в print (qry), равен
SELECT user.id AS user_id, user.username AS user_username, user.user_nome AS user_user_nome, user.email AS user_email, user.password_hash AS user_password_hash, user.user_local_id AS user_user_local_id, user.user_terapeuta_id AS user_user_terapeuta_id, user.user_date_crea AS user_user_date_crea, user.user_created_by AS user_user_created_by, user.user_last_login AS user_user_last_login, user.user_activo AS user_user_activo, local.id AS local_id, local.local_nome AS local_local_nome
FROM user INNER JOIN local ON local.id = user.user_local_id
, а результат во 2-й печати -
(<User Jamesdean>, <Local Somewhere in the world>)
Я думал, что создаю какой-то объект, который может быть вызван в Jinja2, например:
<td>Username:</td><td>{{ user.username }} {{ user.local_nome }}</td>
Но это возвращает пустое значение, и никакая ошибка не возвращается, только пустое место, где когда-то это былоимя пользователя до того, как я сделал соединение.
Как я могу получить данные, извлеченные из запроса, представленного здесь: (<User Jamesdean>, <Local Somewhere in the world>)
?