Ich versuche Flask-Blogging zu einer bestehenden App hinzuzufügen, aber es scheint nicht zu spielen schön mit der bestehenden Flask-SQLAlchemy MySQL Datenbank. Es funktioniert jedoch gut mit einer eigenen SQLite-Datenbank.Flask-Blogging: Fehler: Tabelle [...] existiert nicht, (Tabellen werden nicht erstellt)
Auf App Starten versucht es die Tabellen (jedes Mal) zu erzeugen, und einen Fehler nicht geben:
flask run
* Serving Flask app "myapp"
* Forcing debug mode on
2017-06-13 21:32:33,369:DEBUG:flask-blogging:Created table with table name post
2017-06-13 21:32:33,371:DEBUG:flask-blogging:Created table with table name tag
2017-06-13 21:32:33,373:DEBUG:flask-blogging:Created table with table name tag_posts
2017-06-13 21:32:33,375:DEBUG:flask-blogging:Created table with table name user_posts
2017-06-13 21:32:33,472:INFO:werkzeug: * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
jedoch Zugriff auf die Blogging-Route (richtig) beklagt, dass die Tabelle nicht tut existieren. In der Datenbank suchen, sind sie nicht da.
Hier ist der entsprechende Code:
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
db.init_app(app)
migrate = Migrate()
migrate.init_app(app, db=db)
# Required to prevent Flask-Blogging messing with existing tables
from app.models import User, Product, Purchase
# Flask-Blogging database config
with app.app_context():
storage = SQLAStorage(db=db)
blog_engine = BloggingEngine()
blog_engine.init_app(app, storage)
config
ist ein Config-Objekt enthält die entsprechende SQL-Verbindungszeichenfolge (in SQLALCHEMY_DATABASE_URI
) sowie andere erforderliche Flask-Konfigurationsvariablen und arbeitet gut für den Rest der App .
Hmm. Klar klingt das Flask-Bloggen mit einem eigenen config/connection-Objekt. –
@ShawnMehan Das ist nicht korrekt. Neue Verbindungen werden nur bei Bedarf erstellt. – Goutham
@Matt Können Sie auch die von Ihnen verwendeten Versionen 'SQLAlchemy' und' Flask-SQLAlchemy' bereitstellen? Ihre Implementierung scheint korrekt zu sein und wird in 'Flask-Blogging' unterstützt. – Goutham