私はdjangoベースのWebページを構築しようとしています(Pythonを知っていて、いくつかのWebベースのアプリケーションを開発したいと思っています)。このページの目的は、私が読み取りアクセス権しか持たないいくつかの異なるデータベースからのデータを表示することです。基本的に、それはいくつかの重要なことのためのダッシュボードタイプのビューです。
アプリケーションのDjango設定を保持するSqliteデータベースを構築しました。どうすればここから分岐できますか?OracleデータベースとMySQLデータベースにクエリを実行したいですか?
適切なビューで次のようなものを使用して、個別にクエリを実行できます。
def test(request):
from django.db import load_backend
myBackend = load_backend('django.db.backends.oracle') # or 'mysql', 'sqlite3', 'oracle'
myConnection = myBackend.DatabaseWrapper({
'HOST': 'myhost',
'NAME': 'mysid',
'OPTIONS': {},
'PASSWORD': "mypass",
'PORT': "1521",
'USER': "myuser",
'TIME_ZONE': "America/Chicago"})
# Now we can do all the standard raw sql stuff with myConnection.
myCursor = myConnection.cursor()
myCursor.execute("SELECT COUNT(1) FROM schema.table;")
return HttpResponse("%s." % myCursor.fetchone())
テンプレートでは、このカウントを表示できます。ただし、Sqliteデータベースにクエリを実行する方法に基づくと、これは正しくないようです。
データモデルを使用したいのですが。これは、データを読み取るだけのときに使用するのに適切なものですか?アカウントには、oracle/mysqlテーブルへの書き込みアクセス権がありません。
既存のテーブルに対してこれらのモデルを自動的に生成する方法はありますか?これらのテーブルのいくつかは、列の数の点でかなり大きいので、可能であれば、自分の側での間違いを防ぐために作成を自動化することをお勧めします。