繁体   English   中英

Django-访问mySQL数据库中的预先存在的数据

[英]Django - Access pre-existing data in mySQL database

我想做的是:我有一个csv文件,其中包含一些公共传输数据。 我想在我的Django应用程序中使用它,所以我将csv导入了mySQL数据库。 然后,我为该表创建了一个Django模型(我还将我的模型与python manage.py inspectdb的输出进行python manage.py inspectdb ,以确保它是正确的。然后我运行了python manage.py makemigrations并最终运行了python manage.py migrate 。我了解(而且我是Django的新手,很抱歉,如果我错过了明显的内容),那么Django现在应该可以访问数据库中的表。

虽然没有用。 我试过使用Django shell( python manage.py shell )并使用Stops.objects.all()返回表内容,后者返回一个空集。 同样,我能够使用Stops.objects.all()的值创建一个HttpResponse,尽管它没有给出错误,但没有返回任何数据。 我已经确认我正在settings.py中访问正确的数据库,并且数据实际上是通过mysql终端存储的。

我一直在尝试修复此问题,但尚未找到任何解决方案。 我认为我可能错过了一些小步骤,希望这里有人会知道。 提前致谢!

如果我是你,我将验证我的表是否按预期命名。

使用MySQL, 类似

USE mydb
SHOW TABLES;

我假设您的django表将使用默认的命名方案f“ {app_label} _ {model}”,因此,如果您的应用名为“ my_app”,而模型为“ stops”,则可以预期django将管理一个名为“ my_app_stops”

您可以使用django shell进行验证

$ ./manage.py shell

from my_app.models import Stops
Stops._meta.db_table

我希望这有帮助。 没有更多信息,我只能向您展示如何调查最明显的缺陷。

编辑如果确定确实存在差异,则有两个选择:(1)重命名表以匹配Django,或(2)强制django使用Meta类查看现有表

from django.db import models
class Stops(models.Model):
    class Meta:
        db_table = 'some_table_name'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM