【问题标题】:Using an existing sqlite3 database with django在 django 中使用现有的 sqlite3 数据库
【发布时间】:2018-10-11 10:52:26
【问题描述】:

我开始使用 Django,并且有一个关于在 Django 中使用我自己的 SQLite 数据库的特殊问题。我的意思是,如果我创建一个新数据库并填充它,一切正常。这是我现在的情况。

我的实例retail_data.sqlite3 在BASE_DIR 中有一个现有数据库。我现在想将其用作数据,因此我将其添加到设置中,如下所示。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },

    'retail_data':{
        'ENGINE':'django.db.backends.sqlite3',
        'NAME':os.path.join(BASE_DIR,'retail_data.sqlite3')

    }
}

以上代码复制自this site。 然后我使用inspectdb 命令(python manage.py inspectdb --database=retail_data > salesapp/models.py)生成可以使用我当前数据库的models.py。此外,我继续更新 admin.py 文件,以便我可以从我的管理面板中看到它。然而,在管理面板中,即使数据表可见,我也无法查看数据。

我怀疑数据库是否真的包含数据,所以我使用简单的 pandas.read_sql_query 来查询数据库,它包含所有需要的数据。我应该如何进行?非常需要您的指导。提前致谢

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    您还需要告诉 Django 哪些模型使用您命名为 'default' 的数据库,哪些模型使用数据库 'retail_data'

    你可以通过写a database router class来做到这一点。

    【讨论】:

    • 嗨詹姆斯,我也这样做了,但我得到了相同的结果。数据库有数据,但没有显示在管理员中
    猜你喜欢
    • 2016-02-21
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-09-05
    • 2011-11-06
    • 1970-01-01
    • 2016-05-03
    相关资源
    最近更新 更多