【问题标题】:Iterate over the results returned from session query in SqlAlchemy and print them in a flask template在 SqlAlchemy 中迭代从会话查询返回的结果并将它们打印在烧瓶模板中
【发布时间】:2017-10-16 17:22:40
【问题描述】:

如何从数据库中迭代 session.query 返回的结果并将它们打印到烧瓶模板中? 我有以下代码,可以在其中成功迭代从数据库返回的结果并在我的烧瓶应用程序之外打印员工姓名。 我只是无法弄清楚如何使用以下代码并在烧瓶模板中打印出员工姓名:

def getEmployees():
    engine = create_engine('mssql+pyodbc://<server name>/<DB name>?driver=SQL+Server+Native+Client+11.0')
    Base = declarative_base(engine)

    class Bookmarks(Base):
        __tablename__ = 'table name'
        Employee = Column(String(50))
        __table_args__ = {'autoload':True}

    def loadSession():
        metadata = Base.metadata
        Session = sessionmaker(bind=engine)
        session = Session()
        return session

    if __name__ == "__main__":
        session = loadSession()
        results = Bookmarks.query.filter_by(Manager='Bob')

路线:

@app.route('/employeesName', methods=['GET')
def employeesName():
    if request.method == 'GET':
        return render_template('getEmployees.html')

模板(getEmployees.html):

<h2>Results</h2>
{% for employees in results %}
{{ employees.Employee }}
{% endfor %}

如何在烧瓶模板中打印由 Manager = 'Bob' 过滤的员工姓名? 非常感谢!

【问题讨论】:

  • 可以在视图中渲染模板的地方添加代码吗?
  • 我已经修改了我遇到问题的代码。我遇到的问题是,当我转到 /employeesName 时,我没有看到任何打印的内容。我很抱歉,但我对 Flask 很陌生,这就是为什么我之前复制了错误的代码。

标签: python flask sqlalchemy flask-wtforms


【解决方案1】:

想通了。 我应该在渲染模板时添加函数名称:

@app.route('/employeesName', methods=['GET')
def employeesName():
    if request.method == 'GET':
        return render_template('getEmployees.html', results=getEmployees())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多