【问题标题】:SqlAlchemy-passing models to html code gives me 'str object' has no attribute errorSqlAlchemy 将模型传递给 html 代码给了我“str 对象”没有属性错误
【发布时间】:2018-12-28 05:43:54
【问题描述】:

我的 sqlalchemy 数据库模型返回为

return f"User('{self.user_a}','{self.email}','{self.level}')

※ 当我检查网络请求标头时

b: User('aaa','kep@keo.com','ccc')

在我的python代码中

a.py selected = request.args.get('b') return render_template('abc.html', selected = selected)

在我的 html 代码中

abc.html <input type="text" value={{ selected.user_a.data }}> // I guess here is the problem.

我希望输入值显示在主页窗口上。

但是错误来了

jinja2.exceptions.UndefinedError : 'str object' has no attribute 'user'

谁能帮我解决这个错误?

【问题讨论】:

  • request.args 中的任何内容都是字符串...没有 "asd".user 这样的东西,您希望发生什么?您没有真正给我们足够的帮助,只能说错误信息是正确的......也许你想要selected = session.query(Users).filter(id=request.args.get('b')).first()......也许?
  • @JoranBeasley 上传了我得到的更多信息。抱歉,在编辑之前认为信息已经足够了。我想打印出输入值。但我认为我在调用 html 代码上的数据时遇到问题..
  • @JoranBeasley 不……那不是我要找的……我认为需要更改 html 上的代码或添加一些函数 a.py。但不要不知道有什么问题。
  • 您正在传递一个字符串("User('aaa','kep@keo.com','ccc')") ...您不能在任何请求参数(甚至 request.form)中传递除字符串以外的任何内容 .... ...您需要传递一个 ID,然后从该 ID 中检索用户 ...

标签: python html flask sqlalchemy


【解决方案1】:

此异常意味着您试图从字符串而不是对象访问属性。您期望 selected 作为一个对象,但实际上,它是一个字符串。您需要先将其转换为 JSON,然后再将其传递给模板。

import json
selected = request.args.get('b')
selected_object = json.loads(selected)
return render_template('abc.html', selected = selected_object)

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 2014-10-13
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    相关资源
    最近更新 更多