2017-10-16 16 views
-1

데이터베이스에서 session.query에 의해 반환 된 결과를 반복하고 플라스크 템플릿으로 인쇄 할 수 있습니까? 다음 코드를 사용하여 데이터베이스에서 반환 된 결과를 성공적으로 반복 할 수 있으며 플라스크 응용 프로그램 외부에서 직원 이름을 인쇄 할 수 있습니다.SqlAlchemy에서 세션 쿼리에서 반환 된 결과를 반복하고 플라스크 템플릿으로 인쇄하십시오.

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'으로 필터링 된 사원 이름을 인쇄하려면 어떻게합니까? 정말 고마워요!

+0

당신이 코드를 추가 할 수 있습니다 : 나는 템플릿을 렌더링하는 동안 함수 이름을 추가했는데 ? – PRMoureu

+0

전체 추적을 포함하여 [mcve]를 (를) 포함 시키려면 [편집]하십시오. 코드가 매우 명확하지 않으므로 전체 프로그램을보기 안에 넣은 것처럼 보입니다. 이해가되지 않습니다. – davidism

+0

문제가있는 코드를 수정했습니다. 내가 가지고있는 문제는 내가/employeesName에 갈 때 인쇄 된 것이 아무것도 없다는 것입니다. 사과하겠습니다.하지만 이전에 잘못된 코드를 왜 복사했는지 Flask의 새 기능에 익숙합니다. – LinuxUser

답변

0

알아 냈습니다. 당신이보기에 템플릿을 렌더링 곳

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