Dynamische Datenbankverbindung Flask-SQLAlchemy

7

Ich muss zwei Datenbanken verbinden. Die Standarddatenbank ist fest, aber die andere ist dynamisch und basiert auf URL.

Wenn URL beispielsweise: yourapp.myweb.com lautet, lautet der zweite Datenbankname yourapp

Ich versuche, Datenbank in init .py zu verbinden, aber es zeigt mir folgenden Fehler

%Vor%

Hier ist meine init .py

%Vor%

Hier ist die viwe.py

%Vor%

Hier ist die model.py

%Vor%     
Kaushik Makwana 03.06.2017, 07:45
quelle

1 Antwort

3

Wie ich in einem meiner Kommentare gesagt habe, könnte dies ein Problem mit der Datenbankverbindung sein. Hier ist, was ich überprüfen würde:

  1. Stellen Sie zuerst sicher, dass Sie die richtige Engine in Ihrer virtuellen Umgebung installiert haben (Sie können einfach überprüfen, indem Sie pip list ausführen; nur für den Fall, dass ich darauf bestehen muss, dass Bibliotheken in virtuelle Umgebung ). Stellen Sie sicher, dass Sie nicht pymysql , sondern den Port zu Python3, genannt mysqlclient , haben. pymysql funktioniert nur mit Python2. Um diese Bibliothek zu installieren, müssen Sie zuerst die Python- und MySQL-Entwicklungs-Header installieren. Zum Beispiel in Debian / Ubuntu:

    %Vor%

    Dann können Sie die Bibliothek mit dem folgenden Befehl installieren:

    %Vor%
  2. Wenn dies installiert ist, vergewissern Sie sich, dass Sie mit der Bibliothek eine Verbindung zur Datenbank herstellen können. Öffnen Sie eine Python-Shell in der virtuellen Umgebung und geben Sie Folgendes ein (aus dem Beispiel in github ):

    %Vor%
  3. Wenn das funktioniert, stellen Sie sicher, dass Sie die aktuellste Version von Flask ( 0.12 im Moment <) ausführen / a>; dies können Sie wiederum überprüfen, indem Sie pip list ) ausführen, da einige Fehler im Zusammenhang mit der Ausführung von Flask im DEBUG-Modus im Laufe der Zeit behoben wurden.

  4. Das ist hier sicherlich nicht der Fall, aber eine andere Plausibilitätsprüfung überprüft, dass kein anderer Prozess auf dem Port ausgeführt wird, den Sie für Flask verwenden möchten.

Wenn alles oben genannte gut funktioniert, müsste ich etwas vom Stack-Trace sehen, um herauszufinden, was tatsächlich passiert.

    
quelle