如何查看django sqlite3 db的数据库和模式

Shi*_*ndi 22 python sqlite django

我是django框架的新手.

我尝试按照djangogirls教程创建一个简单的博客.

默认情况下,我们将sqlite3作为默认数据库引擎

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

我也尝试了一些ORM查询,甚至执行了一些行sql查询

在我的django项目中,我有这个db.sqlite3文件

blog  db.sqlite3  env  manage.py  mysite
Run Code Online (Sandbox Code Playgroud)

我的问题:如何知道django在这个db.sqlite3中创建的模式(我知道mysql,我可以看到有关每个数据库和表的详细信息,所以在这里我只想知道sqlite中的更多内容)

我的系统中有sqlite3,我尝试过.database命令,但它只显示了我

seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main 
Run Code Online (Sandbox Code Playgroud)

e4c*_*4c5 35

转到数据库所在的文件夹然后转到

sqlite3  db.sqlite3
Run Code Online (Sandbox Code Playgroud)

然后

.tables
Run Code Online (Sandbox Code Playgroud)

或.schema

取决于你想要什么.你可以直接调用sqlite3,而不是直接调用sqlite3

 ./manage.py dbshell 
Run Code Online (Sandbox Code Playgroud)

然后键入sqlite命令.

  • `sqlite3` 随 `django` 安装一起安装。 (2认同)

小智 8

首先,运行以下命令:

python manage.py dbshell
Run Code Online (Sandbox Code Playgroud)

访问sqlite3命令行客户端如下所示:

在此输入图像描述

然后,运行以下命令:

.table
Run Code Online (Sandbox Code Playgroud)

或者运行以下命令:

.tables
Run Code Online (Sandbox Code Playgroud)

显示SQLite中的所有表如下所示:

在此输入图像描述

然后,运行以下命令:

.schema --indent store_product
Run Code Online (Sandbox Code Playgroud)

显示“store_product”表的架构,如下所示:

在此输入图像描述


dim*_*ies 6

我已经绊倒了一个小时,目的是DESCRIBE在 Django shell 中复制表,并认为我已经破解了它。我希望这对其他人有用。

在终端中 - 输入以下命令。

python3 manage.py dbshell
.tables
Run Code Online (Sandbox Code Playgroud)

找到您要查找的表的名称,然后运行以下命令:

.header on
.mode column
pragma table_info('table you are looking for');
Run Code Online (Sandbox Code Playgroud)

不要忘记最后一条指令中的分号。