我将Flask-SQLAlchemy与Flask一起使用来建立我的网站,当我尝试访问我网站的投资组合部分时,我一直收到此错误。
Traceback (most recent call last):
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/home/ec2-user/environment/jackmerrill.com/flask/lib/python3.6/dist-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/ec2-user/environment/jackmerrill.com/server.py", line 56, in portfolio
return render_template("portfolio.html", cards = [portfolio_dict(projects) for project in projects])
File "/home/ec2-user/environment/jackmerrill.com/server.py", line 56, in <listcomp>
return render_template("portfolio.html", cards = [portfolio_dict(projects) for project in projects])
File "/home/ec2-user/environment/jackmerrill.com/server.py", line 46, in portfolio_dict
return dict(id=port.id, title=port.title, text=port.text, link=port.link, imagelink=port.imagelink)
AttributeError: 'list' object has no attribute 'id'
相关代码在这里:
class Portfolio(db.Model):
id = db.Column(db.Integer(), primary_key=True)
title = db.Column(db.String(100))
text = db.Column(db.String(2000))
imagelink = db.Column(db.String(2000))
link = db.Column(db.String(2000))
# Create all database tables
db.create_all()
def portfolio_dict(port):
return dict(id=port.id, title=port.title, text=port.text, link=port.link, imagelink=port.imagelink)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/portfolio')
def portfolio():
projects = Portfolio.query.all()
print(projects)
return render_template("portfolio.html", cards = [portfolio_dict(projects) for project in projects])
编辑:我像这样在HTML文件中调用cards
变量:
{{ cards | tojson }}
我可能做错了什么?我曾经使用过这种方法来处理整个SQLite表,然后将其转换为Python字典,但这从未发生过。
感谢您的帮助。谢谢!
答案 0 :(得分:2)
您的代码中有一个错字。在列表理解范围内,它应该是portfolio_dict(project)
而不是portfolio_dict(projects)
。