Python 烧瓶+;SQLAlchemy:类不可编辑
我在尝试将SQLAlchemy查询呈现到模板时遇到问题,我得到的错误是:Python 烧瓶+;SQLAlchemy:类不可编辑,python,sqlite,flask,sqlalchemy,flask-sqlalchemy,Python,Sqlite,Flask,Sqlalchemy,Flask Sqlalchemy,我在尝试将SQLAlchemy查询呈现到模板时遇到问题,我得到的错误是: TypeError: 'Users' object is not iterable 数据库是一个sqlite 我一直在关注youtube上的“探索真正的Python”教程,这是一个很大的帮助。我唯一改变的是在教程中,他使用了“博客帖子”,而我使用了“用户” 我试图理解他是如何让用户在模板中迭代他版本的代码的 我的Models.py文件如下: from app import db class Users(db.Model
TypeError: 'Users' object is not iterable
数据库是一个sqlite我一直在关注youtube上的“探索真正的Python”教程,这是一个很大的帮助。我唯一改变的是在教程中,他使用了“博客帖子”,而我使用了“用户” 我试图理解他是如何让用户在模板中迭代他版本的代码的 我的
Models.py
文件如下:
from app import db
class Users(db.Model):
__tablename__="users"
id= db.Column(db.Integer, primary_key=True)
username=db.Column(db.String, nullable=False)
password=db.Column(db.String, nullable=False)
def __init__(self, username, password):
self.username=username
self.password=password
def __repr__(self):
return '<username{}'.format(self.username)
我一直在使用的文本处理方法是“/testing”,testquery.html文件就是我一直在尝试使用的,并且一直在使用它来测试错误
{users%%中的用户为%s}
{{user.username}
{{user.password}}
{%endfor%}
我尝试了在另一个堆栈问题中看到的修复:
def __init__(self, username, password):
self.username=[username]
self.password=[password]
但这并没有改变什么。
任何人都知道我需要做些什么才能让它变得适合 在测试中,您没有用户列表。您在这里有一个用户:
users = db.session.query(Users).first()
这只返回数据库中的第一个用户。因此,也不能在用户上循环。将其重命名为user
(删除s
)并删除模板中的循环:
@app.route('/testing')
def testing():
user = db.session.query(Users).first()
return render_template('testquery.html', user=user)
及
{{user.username}
{{user.password}}
请包含错误的完整回溯。编辑已完成,测试时我更改了一系列内容。但我最初使用的是“all()”@TheTimes:youdo in/
路线。好吧,我基本上只是按照你的建议做了,并让它开始工作。然后我继续把它改回原来的样子,它神奇地工作了:/我讨厌这样的事情发生,我确信有些事情改变了,但它看起来像是编程的魔法。
@app.route('/testing')
def testing():
user = db.session.query(Users).first()
return render_template('testquery.html', user=user)