django 连接oracle的坑和解决方法

 

oracle11g客户端,cx-oracle6.1安装好之后报错:

1.oci.dll is not the correct architecture 

 原因是64位系统安装了32位的oracle11g客户端,当时是为了使用plsql,因为plsql只有32位,。重新下载了oracle11g 64位客户端,并在环境变量中配置好路径。

2.继续报错

django.db.utils.DatabaseError: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor

原因是在配置django的setting.py的数据库连接时候按着一下方式配置,一下方式的NAME是要求SID不是SERVICE_NAME

 'default': {
            'ENGINE': 'django.db.backends.oracle',
            'NAME': 'myservice',
            'USER': 'system',
            'PASSWORD': 'admin123',
            'HOST': '192.168.1.45',
            'PORT': '1699',
    }

 

改为支持SERVICE_NAME的配置方式,

     'default': {
                'ENGINE': 'django.db.backends.oracle',
                'NAME': 'host.db.com:1699/oracle_service.db.com',
                'USER': 'user',
                'PASSWORD': 'pass',
        }

3.继续报错

'cx_Oracle.Cursor' object has no attribute 'numbersAsStrings' 

原因是cx_oracle6.1版本没有numbersAsStrings属性了,降低cx_oracle版本至5.2

测试:

 from django.db import connection
 cursor = connection.cursor()

没报错则成功;

相关资源连接:

https://download.csdn.net/download/houzixuena/10713190

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Django REST Framework 连接 Oracle 数据库,需要进行以下步骤: 1. 安装必要的库 使用 pip 安装以下库: ``` pip install cx_Oracle pip install django-cors-headers ``` 2. 配置 settings.py 文件 在 settings.py 文件中,需要配置以下内容: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracle', 'NAME': 'database_name', 'USER': 'username', 'PASSWORD': 'password', 'HOST': 'host', 'PORT': 'port', } } CORS_ORIGIN_ALLOW_ALL = True ``` 其中,需要将 NAME、USER、PASSWORD、HOST 和 PORT 修改为实际的数据库连接信息。 3. 创建模型 在 models.py 文件中,定义需要连接的数据库表: ``` from django.db import models class MyTable(models.Model): id = models.IntegerField(primary_key=True) name = models.CharField(max_length=50) ... ``` 4. 创建序列化器 在 serializers.py 文件中,创建序列化器: ``` from rest_framework import serializers from .models import MyTable class MyTableSerializer(serializers.ModelSerializer): class Meta: model = MyTable fields = '__all__' ``` 5. 创建视图 在 views.py 文件中,创建视图: ``` from rest_framework import generics from .models import MyTable from .serializers import MyTableSerializer class MyTableView(generics.ListAPIView): queryset = MyTable.objects.all() serializer_class = MyTableSerializer ``` 6. 配置 URL 在 urls.py 文件中,配置 URL: ``` from django.urls import path from .views import MyTableView urlpatterns = [ path('mytable/', MyTableView.as_view(), name='mytable'), ] ``` 7. 启动服务器 使用以下命令启动服务器: ``` python manage.py runserver ``` 现在,就可以在浏览器中访问 http://localhost:8000/mytable/ ,查看连接Oracle 数据库中的数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值