我最近开始学习python flask和我一直都具有从数据库显示麻烦的项目。
我使用SQLAlchemy来查询数据库,并传递结果到home.html的模板。该代码如下所示:
@app.route('/', methods=['GET', 'POST'])
@app.route('/home', methods=['GET', 'POST'])
def home():
get_modules = modules.query.order_by(modules.modulename).all()
return render_template('home.html', modules = get_modules)
然后在home.html的我有这样的:
{% for modulename in modules %}
<tr>
<td>{{modulename}}</td>
<br>
</tr>
{% endfor %}
而输出是这样的:
- 模块(“高级Web技术”)
- 模块(“体验设计”)
- 模块(“用户中心组织系统”)
但我也需要这样的输出:
- 高级Web技术
- 体验性设计
- 以用户为中心的组织系统
我将如何实现这一目标?
分析解答
尝试
{% for modulename in modules %}
<tr>
<td>{{modulename.modulename}}</td>
<br>
</tr>
{% endfor %}
modules.query.order_by(modules.modulename).all()
的返回值基本数据库的行,因此仅通过printing您正在访问整个行对象的modulename
,这就是为什么你痛风modules(...)
outputed到屏幕上。得到的只是一个特定的列值,仅仅是指通过modulename.<COLUMN_NAME>