2017-02-18 20 views
0

Я начинаю с Python Flask, я пытаюсь увидеть, как я могу отображать данные в html-представлении, получая данные из базы данных. Когда я запускаю код, он не производит никаких ошибок, но у представления нет информации, если я пытаюсь выполнить код в отдельном тестовом файле, я вижу, что все из базы данных отображается в консоли, но не уверен, почему оно не отображается в html view. Вот код.Невозможно выполнить рендеринг данных db в флизе python

from flask import Flask 
from sqlalchemy import create_engine 
from sqlalchemy.orm import sessionmaker 
from database_setup import Base, Restaurant, MenuItem 

engine = create_engine('sqlite:///restaurantmenu.db') 
Base.metadata.bind = engine 
DBSession = sessionmaker(bind = engine) 
session = DBSession() 

app = Flask(__name__) 

@app.route('/') 
def HelloWorld(): 
    allRest = session.query(Restaurant).all() 
    output = '' 
    for el in allRest: 
     output += el.id 
     output += '</br>' 
    return output 

html view: Empty and no errors. Поэтому я не уверен, почему я не вижу ничего после получения всей информации из db.

+0

Является ли база данных заполненной данными? –

+0

@SelimAjimi Да, я добавил семя, имеет много информации, и я могу заставить их работать, если я просто создаю файл test.py с той же командой, которую я использовал выше. –

ответ

0

Если вы уверены, что база данных была создана и у вас есть данные внутри. Тогда вам необходимо преобразовать идентификаторы в строку в явном виде:

output += str(el.id) 
0

Я думаю, что наиболее вероятный ответ на это является то, что нет никаких данных в базе данных. Если это не так, нам, вероятно, нужна дополнительная информация. Вероятно, нам нужно будет увидеть, как выводится код html. Тем не менее, вы должны уметь отлаживать это намного легче, чем кто-либо удаленно. У меня есть две рекомендации для вас:

  1. Начать использовать pycharm. С помощью pycharm вы можете установить точки останова, чтобы выполнить свой код. Только это, вероятно, покажет вам, где проблема. Например, вы можете установить разрыв после извлечения объектов Restaurant и просто посмотреть, вернул ли он что-либо.
  2. Рассмотрите использование колба-sqlalchemy вместо сырой sqlalchemy. Это не так важно, как pycharm, но это полезно.

 Смежные вопросы

  • Нет связанных вопросов^_^