You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django环境下无法访问SQLite表的问题排查求助

解答

核心结论

SQLite确实是Django默认使用的数据库,但Django依赖的是Python内置的sqlite3模块,而非系统级的SQLite命令行工具。你在PowerShell中直接执行.tables或sqlite命令失败,是因为Windows系统默认不带SQLite命令行客户端,且该工具不会随Django安装。

验证数据库是否正常工作

你已经成功执行python manage.py migrate,说明Django已经通过Python内置的sqlite3模块创建了db.sqlite3数据库文件并生成了表,数据库本身是正常运行的,只是缺少查看工具。

两种查看数据库表的方案

方案1:使用Django自带Shell(无需额外安装)

在项目虚拟环境的PowerShell中执行:

python manage.py shell

进入Django Shell后,运行以下代码即可列出所有表:

from django.db import connection
with connection.cursor() as cursor:
    cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
    tables = cursor.fetchall()
for table in tables:
    print(table[0])

方案2:安装SQLite命令行工具

如果想使用.tables这类原生SQLite命令,需手动安装配置:

  1. 下载SQLite官方提供的Windows预编译二进制工具包(对应系统位数的sqlite-tools-winxx-xxx.zip)
  2. 解压后,将包含sqlite3.exe的文件夹路径添加到系统PATH环境变量
  3. 重启PowerShell,进入项目根目录执行:
sqlite3 db.sqlite3

进入SQLite交互环境后,即可执行.tables查看表,或用.exit退出。

补充说明

  • Python 2.5及以上版本默认内置sqlite3模块,Django直接调用该模块操作SQLite,因此无需单独安装SQLite就能让Django正常运行。
  • 系统级SQLite命令行工具是独立程序,与Django、Python的sqlite3模块无关联,需单独安装配置。

内容的提问来源于stack exchange,提问作者Marco Moldenhauer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:30:12