无法使用oracle ebs数据库连接到Django

时间:2019-04-04 06:25:35

标签: django python-3.x oracle11g cx-oracle

我正在尝试使用Django构建我的第一个Web应用程序。

我实际上是指在Oracle Database 11g中使用Python(在“使用Django框架”部分下)

但是在尝试执行命令python manage.py runserver时却出现错误

遵循的步骤

  1. django-admin.py startproject myproj

  2. cd myproj

  3. python manage.py startapp myapp

  4. 成功执行上述命令后,下一步就是修改连接设置,以允许应用程序连接到文件myproj / settings.py中的数据库。

在这里我用数据库详细信息更新了详细信息

DATABASES = {

        'default': {

                    'ENGINE': 'django.db.backends.oracle',
                    'NAME': '<our ebs database name>',
                    'USER': <username>,
                    'PASSWORD': <password>,

                    }

        }
  1. 还在INSTALLED_APPS下添加了项目,以将应用程序与项目关联:

    INSTALLED_APPS = [
    
    'django.contrib.admin',
    
    'django.contrib.auth',
    
    'django.contrib.contenttypes',
    
    'django.contrib.sessions',
    
    'django.contrib.messages',
    
    'django.contrib.staticfiles',
    
    'myproj.myapp'
    
    ]
    
  2. 在终端窗口中,当我尝试从myproj目录执行以下命令时:

python manage.py runserver

我收到以下错误消息

C:\ Users \ xxx \ Desktop \ Python files \ myproj> python manage.py runserver

.wrapper在0x00000274CA28AEA0处启动的线程中未处理的异常>

回溯(最近通话最近一次):

在创建过程中,文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ apps \ config.py”

cls = getattr(mod, cls_name)

AttributeError:模块'myproj'没有属性'myapp'

在处理上述异常期间,发生了另一个异常:

回溯(最近通话最近一次):

包装中的文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ utils \ autoreload.py”,第225行

fn(*args, **kwargs)

inner_run中的第109行“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ core \ management \ commands \ runserver.py”

autoreload.raise_last_exception()

文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ utils \ autoreload.py”,第248行,位于raise_last_exception

raise _exception[1]

在执行的第337行,文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ core \ management__init __。py”

autoreload.check_errors(django.setup)()

包装中的文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ utils \ autoreload.py”,第225行

fn(*args, **kwargs)

文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django__init __。py”,设置中的第24行

apps.populate(settings.INSTALLED_APPS)

填充的文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ apps \ registry.py”,第89行,

app_config = AppConfig.create(entry)

在创建时在第123行添加文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ django \ apps \ config.py”

import_module(entry)

import_module中的文件“ C:\ Users \ xxx \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ importlib__init __。py”,第127行

return _bootstrap._gcd_import(name[level:], package, level)

_gcd_import中的文件“”,第1006行

文件“”,第983行,位于_find_and_load

“ _ find_and_load_unlocked”中第965行的文件“”

ModuleNotFoundError:没有名为“ myproj.myapp”的模块

2 个答案:

答案 0 :(得分:0)

我是Django的新手。我认为问题是myproj.myapp。您不需要项目名称,只需将'myapp',添加到INSTALLED_APPS。希望这会有所帮助。

答案 1 :(得分:0)

来自"Writing your first Django app, part 2: Activating models" tutorial

  

要将应用程序包含在我们的项目中,我们需要在INSTALLED_APPS设置中添加对其配置类的引用。 PollsConfig类位于polls/apps.py文件中,因此其虚线路径为'polls.apps.PollsConfig'。编辑mysite/settings.py文件,然后将该虚线路径添加到INSTALLED_APPS设置中。看起来像这样:

     
    

mysite/settings.py

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
  

因此,请查看myproj/apps.py,看看该类的名称是什么,并且您的INSTALLED_APP应该类似于:

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'myproj.apps.MyprojConfig'
]