数据库Api Python/djang

2024-05-03 15:57:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个关于Django的教程

当我使用命令python manage.py shell调用交互式shell来访问数据库API时,会收到以下提示

In [1]:from music.models import Album, Song
In [2]: Album.objects.all()

下一行给我这个

OperationalError: no such table: music_album

Tags: djangoinfrompyimport命令api数据库
2条回答

Configure your database connectionsettings.py中,并且在创建Django模型之后,必须执行两个命令:

  • python manage.py makemigrations
  • python manage.py migrate

然后将在数据库中创建表,您将能够在shell中使用这些表

正如错误所说,这意味着数据库中没有与这些模型对应的表。你知道吗

通常这意味着您忘记了迁移数据库。通过运行:

python manage.py makemigrations

Django将构造文件(在someapp/migrations/)这些文件描述了必须执行的步骤,以便用正确的列构造表,或者稍后在progress中可以重命名列、删除表、构造新表。如果运行该命令,您将看到出现描述这些迁移的新文件。你知道吗

但是现在您仍然没有迁移数据库本身,您只构建了文件。例如,您可能希望自己添加自定义迁移。如果迁移文件正确,可以运行

python manage.py migrate

相应地更改数据库。你知道吗

为了运行迁移,必须在settings.py文件中正确指定数据库。但是由于您获得了一个OperationalError,它抱怨找不到表,因此我认为这已经得到了正确的处理。你知道吗

有关详细信息,请参见Django topic on migrations [Django-doc]。你知道吗

相关问题 更多 >