Verwendung von Flask-SQLAlchemy ohne Flask

9

Ich hatte einen kleinen Webdienst mit Flask und Flask-SQLAlchemy , der nur ein Modell enthielt. Ich möchte jetzt die gleiche Datenbank verwenden, aber mit einer Befehlszeilen-App, also würde ich gerne die Flask Abhängigkeit fallen lassen.

Mein Modell sieht so aus:

%Vor%

Da db nicht länger ein Verweis auf flask.ext.sqlalchemy.SQLAlchemy(app) ist, kann ich mein Modell so konvertieren, dass es nur SQLAlchemy verwendet. Gibt es eine Möglichkeit für die beiden Anwendungen (eine mit Flask-SQLAlchemy die andere mit SQLAlchemy ), dieselbe Datenbank zu verwenden?

    
amccormack 08.05.2015, 02:52
quelle

6 Antworten

1

Dies beantwortet Ihre Frage nicht vollständig, da die Flask-Abhängigkeit nicht entfernt wird, aber Sie können SqlAlchemy in Skripts und Tests verwenden, indem Sie die Flask-App einfach nicht ausführen.

%Vor%

Eine Schwierigkeit, der Sie möglicherweise begegnen, ist die Verwendung von db.Model als Basisklasse für Ihre Modelle, wenn Sie die Webanwendung und unabhängige Skripts mit derselben Codebasis als Ziel verwenden möchten. Eine mögliche Lösung besteht darin, dynamischen Polymorphismus zu verwenden und die Klassendefinition in eine Funktion umzuwandeln.

%Vor%

Wenn Sie die Klassenlaufzeit in der Funktion erstellen, können Sie verschiedene SqlAlchemy Instanzen übergeben. Einziger Nachteil ist, dass Sie die Funktion aufrufen müssen, um die Klasse zu konstruieren, bevor Sie sie verwenden.

%Vor%     
Timo 26.07.2017 21:16
quelle
0

Die sqlalchemy-Dokumentation enthält ein gutes Tutorial mit Beispielen, die nach dem klingen, was Sie tun möchten. Ссылка

Zeigt, wie eine Verbindung zu einer db, Mapping, Schemaerstellung und Abfragen / Speichern in der db hergestellt wird.

    
juzten 08.05.2015 08:14
quelle
0

Flask (& gt; 1.0) versucht, Helfer zum Teilen von Code zwischen einer Webanwendung und einer Befehlszeilenschnittstelle bereitzustellen; Ich persönlich denke, es könnte sauberer, leichter und einfacher sein, Bibliotheken zu erstellen, die nicht mit flask verbunden sind, aber Sie sollten folgendes überprüfen:

bufh 03.06.2015 07:13
quelle
0

Sehen Sie sich dieses github.com/mardix/active-alchemy

an
  

Active-Alchemy ist ein Framework-agnostischer Wrapper für SQLAlchemy, der es sehr einfach macht, einen einfachen aktiven Datensatz wie api zu implementieren, während er immer noch db.session darunter verwendet. Inspiriert von Flask-SQLAlchemy

    
Levon 16.07.2016 12:29
quelle
0

Sie können dies tun, um db.Model :

zu ersetzen %Vor%

dann, um die Tabellen zu erstellen:

%Vor%     
Kyle Roux 16.05.2017 23:10
quelle
0

Es gibt einen großartigen Artikel über Flask-SQLAlchemy: wie es funktioniert und wie man Modelle modifiziert, um sie außerhalb von Flask zu verwenden:

Ссылка

    
maxkoryukov 25.10.2017 21:37
quelle