【发布时间】:2018-04-29 02:02:13
【问题描述】:
我正在试验https://github.com/hack4impact/flask-base 并尝试将 sqlalchemy orm 对象传递给 jinja2 模板。
我的属性模型是;
class Property(db.Model):
__tablename__ = 'properties'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(140))
body = db.Column(db.String(1400))
img = db.Column(db.String(140))
....
在我的 main/views.py 我有:
from flask import render_template
from app import db
from app.models import Property
from . import main
@main.route('/')
def index():
props = db.session.query(Property).all()
return render_template('main/index.html')
我知道要将变量传递给模板,您会这样做:
return render_template('main/index.html', pr= props)
但是尝试:
>>> type(props[0])
<class 'app.models.property.Property'>
这似乎是要传递的错误类型的对象。我会假设你会传递更通用的东西,比如字典列表。将 sqlalchemy 对象列表传递到 jinja2 模板的最佳方法是什么?
【问题讨论】:
-
" 我假设你会传递一些更通用的东西,比如字典列表。"你为什么这么认为?你可以通过任何你想要的。
-
是什么让你认为这是错误的类型?
-
我可能说错了,但在我看来,人们更有可能传入常用的更通用的数据结构(列表、字典等)。传递给 jinja2 模板的内容是否有最佳实践?
标签: python flask sqlalchemy jinja2 flask-sqlalchemy