Ich arbeite an einem Python/Django-Projekt, und wir müssen zwei Datenbanken verwenden. Im Anschluss an die Dokumentation habe ich eine zweite Datenbank wie folgt aus:Warum habe ich dieses Datenbankproblem?
DATABASE_URL = os.getenv('DATABASE_URL', 'postgres://*******:********@aws-us-***********:*****/*****')
CURRENCIES_URL = os.getenv('CURRENCIES_URL', 'postgres://*******:********@aws-us-***********:*****/*****')
DATABASES = {
'default': dj_database_url.parse(DATABASE_URL),
'currencies': dj_database_url.parse(CURRENCIES_URL)
}
Die Parse() -Methode, die Daten in dem Format gibt das Objekt erwartet.
Dann habe ich diesen Code:
currencies = connection['currencies'].cursor()
Im Grunde ist dies erlaubt es mir, benutzerdefinierte SQL-Code auf der Datenbank ausgeführt werden, durch seinen Cursor zurückkehrt und es in currencies
jedoch zu speichern, wenn Sie diesen Code I läuft erhalten diese in der Konsole:
url(r'^', include('btcmag.urls', namespace="btcmag")),
File "/Users/john/.virtualenvs/btcmag/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 50, in include
urlconf_module = import_module(urlconf_module)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/Users/john/btcmag/btcmag/urls.py", line 7, in <module>
from . import views
File "/Users/john/btcmag/btcmag/views.py", line 4, in <module>
from .apis import getTrendingArticles, getTickers, getCurrency, getHistory
File "/Users/john/btcmag/btcmag/apis.py", line 9, in <module>
currencies = connection['currencies'].cursor()
TypeError: 'DefaultConnectionProxy' object has no attribute '__getitem__'
eine Klarstellung:
Wenn ich laufe nur
currencies = connection.cursor()
verwendet es diedefault
Datenbank und funktioniert gut, was mir sagt, es ist nicht das VerbindungsmodulWenn ich
currencies
unddefault
in den Datenbanken Einstellungen schalten Sie es auch gut funktioniert - läuftcurrencies = connection.cursor()
- Verwenden Sie den Währungs-DB als Standard. Also ist die DB auch nicht das Problem.
Was könnte das Problem hier verursachen?
Eigentlich erkennen, Ihre Antwort hat mich, dass es ein weiteres Modul war „Verbindungen“ genannt und bei der Verwendung, dass ich in der Lage zu verbinden. Mein Problem war, dass ich stattdessen "Verbindung" verwendete. Perhpas willst du die Antwort umformulieren und ich werde sie als die richtige markieren –