2017-02-16 2 views
1

Ich habe festgestellt, dass die meisten Beispiele für den Zugriff auf Mysql aus Kolben empfehlen ein Plugin, das init_app(app) ruft.Zugriff auf Mysql von innerhalb der Flasche

Ich habe mich nur gefragt, warum das ist im Gegensatz zu nur mit einer mysql connector irgendwo in Ihrem Code, wie Sie es brauchen?

Ist es besser, wenn flask bessere Ressourcenverwaltung mit Anforderungslebenszyklen durchführt?

+1

Sie können 'init_app' verwenden, wenn Sie Ihren Datenbankzugriff über ein ORM wie sqlalchemy abstrahieren, was besser ist, wenn Sie einmal eingerichtet haben. Wenn Sie direkte SQL-Abfragen verwenden, können Sie die Logik in Ihre Ansichten einfügen, obwohl sie nicht sehr DRY ist. Flask bietet auch einige [hooks] (http://flask.pooco.org/docs/0.12/reqcontext/#callbacks-and-errors) zum Öffnen und Schließen von Datenbankverbindungen vor und nach Ihren Ansichten. – alexpeits

+0

Wenn Sie das in eine Antwort setzen wollen, gebe ich Ihnen Kredit! Danke für die Information! – Hortitude

Antwort

3

Mithilfe von Paketen wie flask-mysql oder Flask-SQLAlchemy wurden nützliche Standardwerte und zusätzliche Hilfefunktionen bereitgestellt, die das Ausführen allgemeiner CRUD-Aufgaben erleichtern.

Alle solche Pakete sind gut im Umgang mit Beziehungen zwischen Objekten. Sie müssen nur die Objekte erstellen, und dann enthalten die Objekte alle Funktionen und Helfer, die Sie für die Datenbank benötigen. Sie müssen diesen Code nicht selbst implementieren und müssen sich keine Gedanken über die Leistung der Abfragen machen .

Ich hatte an einem Django-Projekt gearbeitet (ich glaube, die Theorie in Flask ist ähnlich) und sein ORM ist wirklich erstaunlich, alles, was ich tun muss, ist schreiben Models und kapseln Geschäftslogik. Alle CRUD-Befehle werden vom eingebauten ORM übernommen, da wir uns als Entwickler nicht um die SQL-Anweisungen kümmern müssen.

Ein weiterer Vorteil ist, dass die Datenbankmigration erheblich vereinfacht wird. Sie können es von MySQL zu PostgreSQL mit minimalen Codeänderungen wechseln, die Entwicklung beschleunigen.

Verwandte Themen