2017-02-18 6 views
0

gerendert werden Ich beginne mit Python Flask, ich versuche zu sehen, wie ich Daten in der HTML-Ansicht Daten aus der Datenbank abrufen kann. Wenn ich den Code ausführen, erzeugt es keinen Fehler, aber die Ansicht hat keine Informationen, wenn ich den Code in einer separaten Testdatei versuche, kann ich sehen, dass alles aus der Datenbank in der Konsole angezeigt wird, aber nicht sicher, warum es nicht in der angezeigt wird HTML-Ansicht. Hier ist der Code.Kann nicht db-Daten in Python-Flasche

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-Ansicht: Leere und keine Fehler. Ich bin mir also nicht sicher, warum ich nichts sehen kann, nachdem ich alle Informationen von der db bekommen habe.

+0

Ist die Datenbank mit Daten gefüllt? –

+0

@SelimAjimi Ja, ich habe einen Seed hinzugefügt, habe eine Menge Informationen und kann sie zum Laufen bringen, wenn ich nur eine test.py Datei mit dem gleichen Befehl erstelle, den ich oben benutzt habe. –

Antwort

0

Wenn Sie sicher sind, dass die Datenbank erstellt wurde und Daten darin enthalten sind. Dann müssen Sie die IDs explizit in Zeichenfolgen konvertieren:

output += str(el.id) 
0

Ich denke, die wahrscheinlichste Antwort darauf ist, dass keine Daten in der Datenbank vorhanden sind. Wenn das nicht ist, brauchen wir wahrscheinlich mehr Informationen. Wahrscheinlich werden wir sehen müssen, dass der HTML-Code zumindest ausgegeben wird. Das heißt, Sie sollten in der Lage sein, dies viel einfacher selbst zu debuggen als jemand aus der Ferne. Ich habe zwei Empfehlungen für Sie:

  1. Verwenden Sie pycharm. Mit pycharm können Sie Haltepunkte setzen, um durch Ihren Code zu gehen. Dies allein wird Ihnen wahrscheinlich zeigen, wo das Problem liegt. Zum Beispiel könnten Sie eine Pause nach dem Abrufen der Restaurant Objekte setzen und einfach sehen, ob es irgendetwas zurückgegeben hat.
  2. Betrachten Sie die Verwendung von Kolben-Sqlalchemy anstelle von rohen Sqlalchemy. Dies ist nicht so wichtig wie pycharm, aber es ist hilfreich.