我最近开始学习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>