通过Django连接到oracle数据库

时间:2018-01-30 18:27:02

标签: python django oracle

我想通过Django连接到现有的oracle数据库并编写一个select语句来查询结果。我是Django的初学者,想知道要实现同样的步骤。

我确实更改了settings.py文件以反映更改

DATABASES = {
    'default': {
         'ENGINE': 'django.db.backends.oracle',
         'NAME': 'name',
         'USER': 'username',
         'PASSWORD': 'password',
         'HOST': 'host.com',
         'PORT': '1521',
  }
}

3 个答案:

答案 0 :(得分:0)

以下情况应该有效。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'db_user',
        'USER': 'shema_name',
        'PASSWORD': 'password',
        'HOST': 'ip_or_domain',
        'PORT': '1521',
    }
}

答案 1 :(得分:0)

您需要在settings.py文件中更改以下条目。

DATABASES = {
    'default': {
         'ENGINE': 'django.db.backends.oracle',
         'NAME': 'host.com:1521/dbname',
         'USER': 'username',
         'PASSWORD': 'password',
  }
}

答案 2 :(得分:0)

您可以按照以下步骤使用Django连接到Oracle数据库。

  1. settings.py中添加数据库连接详细信息

如果您通过服务进行连接

DATABASES = {
    'default': {
       'ENGINE': 'django.db.backends.oracle',
       'NAME': 'host.db.com:1540/oracle_service.db.com',
       'USER': 'user',
       'PASSWORD': 'password',
   }
}

如果您通过SID连接

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'xe',
        'USER': 'a_user',
        'PASSWORD': 'a_password',
        'HOST': 'dbprod01ned.mycompany.com',
        'PORT': '1540',
    }
}

  1. 在您的Django项目中安装cx_Oracle library

  2. 转到应用程序的views.py文件并添加以下代码。

from django.http import JsonResponse
from django.db import connection
    
def process(request):
    with connection.cursor() as cursor:
         cursor.execute("select * from YOUR_TABLE")
         columns = [col[0] for col in cursor.description]
         return JsonResponse([
            dict(zip(columns, row))
            for row in cursor.fetchall()
         ], safe=False)

此API将以JSON格式输出查询结果。 链接到官方Django documentation