环境:

  • windows 7 64位
  • python 3.6.5 32位
  • oracle客户端11.2 32位
  • django1.11.20 (django2.x版本不支持oracle客户端11g了)
  • cx_oracle 6.0 32位

在搭建环境的的时候python、oracle客户端、cx_oracle位数必须保持一致,如果不保持一致会造成各种奇怪的BUG!

  1. Python的安装:一直next就可以了
  2. django安装
pip install django==1.11.20
  1. cx_oracle安装:cx_oracle库安装千万不要使用pip install cx_oracle直接安装,去pypi上找到自己需要的版本以及对应的python和oracle客户端的位数下载whl文件,下载完成后切换到下载目录,执行:
pip install cx_Oracle-6.0-cp36-cp36m-win32.whl
  1. oracle客户端的安装:执行exe文件一直下一步直到安装完成,安装完成后编辑D:\OraClient Lite\product\11.2.0\client_lite\network\admin\tnsnames.ora文件(这个文件路径根据你安装的oracle客户端位置变化而变化)
SERVER=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip )(PORT = 端口))
)
(CONNECT_DATA =
(SID = 写你自己数据库的sid)
)
)

配置环境变量:右击计算机 -> 高级系统设置 -> 环境变量 -> 系统变量下找到Path ->选中后编辑 -> 在最后写个分号(;)加上oracle客户端安装路径下的bin/sqlplus,如:D:\OraClient Lite\product\11.2.0\client_lite\bin\sqlplus

  1. django项目的新建

    略
  2. django项目连接oracle数据库:在settings.py中进行配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'SERVER', # 这里写你上面配置tnsnames.ora中的名字
'USER': '你数据库的帐号',
'PASSWORD': '你数据库的密码',
},
}

到这里基本上就结束了,剩下的是你自己的业务开发,最开始搭建开发环境的时候搭建了两天,几个软件版本换了又换,今天web部署到服务器上装环境的时候因为oracle 客户端的版本装的是64位,整了半天

Django连接oracle数据库的那些问题的更多相关文章

  1. Django连接Oracle数据库配置

    Django项目中,settings.py文件中: service_name DATABASES = { 'default': { 'ENGINE': 'django.db.backends.orac ...

  2. java连接Oracle数据库

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...

  3. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  4. NodeJs连接Oracle数据库

    nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md 我的nodej ...

  5. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  6. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  7. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  8. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  9. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

随机推荐

  1. qt程序编译错误:could not exec ‘/usr/lib/x86_64-linux-gnu/qt4/bin/qmake’

    linux下安装Qt5.7后添加qmake环境变量后出现错误 执行: qmake -v 出现错误:qmake: could not exec ‘/usr/lib/x86_64-linux-gnu/qt ...

  2. Daily record-November

    November 11. I managed to grab her hand. 我抓到了她的手.2. He passed a hand wearily over his eyes. 他疲倦地用手抹了 ...

  3. Java垃圾回收算法和内存分配策略

    垃圾回收算法和内存分配策略 Java垃圾回收 垃圾收集,也就是GC并不是Java的伴生物,而对于GC的所需要完成任务主要就是: 1.哪些内存是需要回收的? 2.何时去回收这些内存? 3.以何种方式去回 ...

  4. 关于scrapy

    Scrapy安装 1,Pip install wheel 2,pip install 复制路径+文件名Twisted-18.7.0-cp36-cp36m-win_amd64.whl 3,Pip ins ...

  5. roadhog 构建优化

    背景 一个 antd 项目打包时间太长,竟然快二十分钟了,有时还会导致内存溢出,查了一些资料(thanks funfish),解决方法如下 roadhog.js问题 roadhog.js 是类似可配置 ...

  6. Get 请求 与 Post 请求的区别

    最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.举例: 在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象.但是 ...

  7. [CodeChef-CAPTCITI]Snakes capturing the Mongoose Cities

    Problem 每个点都可以选择降落士兵,然后当一个点的子节点被攻占的数量超过读入中的限制后,这个城市也被占领. 每个点降落士兵都有一定的代价,问把这一个图全部攻占的最小代价. Solution 这显 ...

  8. Exception: 'dlib.mmod_rectangle' object has no attribute 'right' - 例外:'dlib.mmod_rectangle'对象没有属性'right'

    I'm using dlib for face detection and getting this error Exception: 'dlib.mmod_rectangle' object has ...

  9. win10重装win7

    一般预装win8之上的电脑都是UEFI+gpt模式的,装win7很麻烦. 最简单省事的方法: BIOS,secure boot 关闭安全模式. 启动方式改为legacy. 启动方式中USB-HDD改到 ...

  10. 定义一个Map集合,key和value不规定类型,任意放入数据,用keySet()和 entrySet()两种方式遍历出Map集合的数据

    package com.lanxi.demo1_1_1; import java.util.HashMap; import java.util.Iterator; import java.util.M ...