2017-04-26 4 views
0

Es ist meine erste Website auf Azure mit Python. Ich habe vorher mit .NET entwickelt. Entschuldigung, wenn meine Frage eine grundlegende ist.Azure-Verbindungszeichenfolge mit Django WebApp verknüpfen?

Ich habe meine Django-Website auf Azure bereitgestellt. Es funktioniert gut mit den DB-Einstellungen in der settings.py.

Der nächste Schritt, dachte ich, ist die Übertragung der DB-Einstellungen in Azure Application Settings - Connection Strings, was ich getan habe.

Ich bin mir bewusst, dass ich das Präfix MYSQLCONNSTR_connectionString1 brauche.

Wie kann ich meine Django/Python-WebApp jetzt mit der Verbindungszeichenfolge in den Azure-Anwendungseinstellungen verknüpfen?

Ich wäre sehr dankbar für Hilfe.

Antwort

0

Ich konnte die Datenbank über Umgebungsvariablen in Azure-Anwendungseinstellungen - Verbindungszeichenfolgen nicht verbinden, obwohl ich verschiedene Ansätze ausprobiert habe. Trotzdem wäre ich dankbar für die Hilfe, wie es gemacht werden kann.

Was stattdessen arbeitete, Lesen https://godjango.com/blog/working-with-environment-variables-in-python/:

Geben Sie in Azure Anwendungseinstellungen - App die einzelnen DB Anschlusswerte Einstellungen:

KEY     VALUE 
DATABASE_NAME:  <database> 
DATABASE_USER:  <dbuser> 
DATABASE_PASSWORD: <dbpassword> 
DATABASE_HOST:  <host> 
DATABASE_PORT:  <port> 

Und in den Einstellungen.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': os.environ.get('DATABASE_NAME', ''), 
     'USER': os.environ.get('DATABASE_USER', ''), 
     'PASSWORD': os.environ.get('DATABASE_PASSWORD', ''), 
     'HOST': os.environ.get('DATABASE_HOST', ''), 
     'PORT': os.environ.get('DATABASE_PORT', ''),  
    } 
} 
0

Nur import os verwenden os Paket in Ihrem Django Code wie settings.py zu importieren, dann diese Umgebungsvariablen erhalten, die os.getenv("<environ-var-name>") in App settings oder Connection strings des Registerkarte Application settings auf Azure-Portal über den Code definiert werden.

Für die in App settings definierte Umgebungsvariable übergeben Sie einfach den Variablennamen wie VARNAME definiert als das Argument für os.getenv().

Um den Wert der Umgebungsvariablen zu erhalten, die in Connection strings definiert ist, müssen Sie das unterschiedliche Präfix oder surfix für den Variablennamen wie VARNAME hinzufügen, wie unten.

  1. Für SQL Database, Präfix SQLAZURECONNSTR mit Infix-Symbol _ für VARNAMESQLAZURECONNSTR_VARNAME ist.

  2. Für SQL Server, unter Verwendung von Präfix SQLCONNSTR mit Infix-Symbol _ für VARNAMESQLCONNSTR_VARNAME ist.

  3. Für MySQL, unter Verwendung von Präfix MYSQLCONNSTR mit Infix-Symbol _ für VARNAMEMYSQLCONNSTR_VARNAME ist.

  4. Für Custom, mit Surfix MYSQLCONNSTR mit Infix Symbol _ für VARNAME ist VARNAME_CONNECTSTRING.

Ich hoffe, es hilft.

+0

Wenn ich nur hinzufügen, os.getenv („MYSQLCONNSTR_cexymysql“) zu den Einstellungen DB – Anja

+0

Was Sie sagen, ist richtig, aber erklärt, nur die Hälfte den Weg. Ich weiß immer noch nicht, wie man os.getenv ("MYSQLCONNSTR_cexymysql") zu settings.py hinzufügt, dass es von Azure akzeptiert wird. Wenn ich im settings.py auf Azure einfach os.getenv ("MYSQLCONNSTR_cexymysql") hinzufüge, erhalte ich einen "ImproperlyConfigured" -Fehler, wenn ich DATABASES = { 'default': os.getenv ("MYSQLCONNSTR_cexymysql") } addiere " Die Seite kann nicht angezeigt werden, da ein interner Serverfehler aufgetreten ist. " Nochmals vielen Dank, wenn Sie mich von hier aus übernehmen könnten? – Anja