Python 使用Django的SQLite 3数据库

Python 使用Django的SQLite 3数据库,python,django,sqlite,Python,Django,Sqlite,关于显示SQLite表的Django文档教程让我陷入了困境 如果您感兴趣,请为数据库运行命令行客户端,然后键入\dt(PostgreSQL)、SHOW TABLES;(MySQL)或.schema(SQLite)以显示Django创建的表 我创建了一个名为mysite的项目。位置:C:\Python34\Scripts\mysite 在mysite内部,有mysite文件夹、db.sqlite3和manage.py 我打开命令提示符并导航到C:\Python34\Scripts\mysite,然

关于显示SQLite表的Django文档教程让我陷入了困境

如果您感兴趣,请为数据库运行命令行客户端,然后键入\dt(PostgreSQL)、SHOW TABLES;(MySQL)或.schema(SQLite)以显示Django创建的表

我创建了一个名为mysite的项目。位置:
C:\Python34\Scripts\mysite

mysite
内部,有
mysite
文件夹、
db.sqlite3
manage.py

我打开命令提示符并导航到
C:\Python34\Scripts\mysite
,然后键入
.schema
,它返回“.schema无法识别…”

我的
settings.py
数据库文件:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join('BASE_DIR' , 'db.sqlite3'),
    }
}
我也不能定义BASE_DIR。我不知道
db.sqlite3
文件。我不知道文件的扩展名是否为.db

有人能帮我找出答案吗?

您没有“为您的数据库运行命令行客户端”,您只是导航到了目录。命令行客户端是“sqlite3”,尽管您可能没有在Windows上安装它

您不需要定义BASE_DIR,它已经在设置文件的更高层定义,但您需要将其作为变量而不是字符串引用:

'NAME': os.path.join(BASE_DIR , 'db.sqlite3'),

.schema是一个在sqlite3命令行界面内运行的命令,用于获取该数据库中的表列表

如果尚未安装,可以在此处下载sqlite3命令行界面并安装:

安装sqlite3后,您可以:

  • 将目录更改为包含sqlite3数据库文件的文件夹

    cd C:\Python34\Scripts\mysite

  • 使用sqlite3命令行界面打开数据库文件

    sqlite3 db.sqlite3

  • 通过在sqlite3命令行界面提示符处键入.schema获取表列表

    .schema


BASE\u DIR
不是字符串。它是一个变量,其值由django在
settings.py
文件中自动声明。您只需在使用
BASE\u DIR
时删除引号

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

BASE_DIR是变量而不是字符串,请添加所需的导入操作系统和BASE_DIR大小写

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

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

您可能必须更改数据库的settings.py文件。 将
'NAME':'db.sqllite3',
放在数据库dict中


这将在项目目录中创建db.sqlite3文件。它解决了我的问题。希望这能有所帮助。

Django文档说明:“默认情况下,配置使用SQLite。如果您是数据库新手,或者您只是想尝试Django,这是最简单的选择。SQLite包含在Python中,因此您不需要安装任何其他东西来支持您的数据库”。这是否意味着我不必再次安装SQLite?然后您应该能够在windows控制台中键入“sqlite3-version”并获得响应。如果是这样,则不需要安装sqlite3命令行界面。您只需继续其余步骤即可。它显示为“sqlite3无法识别…”。所以,我必须再次安装,对吗?我认为django为您安装的只是sqlite3数据库驱动程序。因此,从技术上讲,运行支持sqlite3的Django项目不需要sqlite3命令行界面。如果您想查看Django之外的数据库,只需要sqlite3命令行界面。是的,如果您想使用“.schema”命令查看其中的内容,您需要安装sqlite3命令行界面:好的,我会安装它。谢谢你的解释。哦……我想我得把“基地”改成一个地点。谢谢你的解释。谢谢你的解释