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

如何在JupyterLab中连接Django的models并访问SQLite数据库数据

问题原因
  • Django默认不会直接使用模型类名作为数据库表名,默认命名规则为[模型所属的app名称]_[模型类名小写],比如Coin模型放在名为market的app下,对应表名是market_coin,你直接查询Coin/coin/COIN都会找不到表。
  • 你提供的原生SQL代码存在笔误:没有创建游标对象cur就直接调用cur.execute,也会触发报错。
解决方案

分两种方案,按需选择:

方案1:继续使用原生SQL查询

  1. 先确认Coin模型所属的app名称,拼接得到正确的表名。你也可以直接在项目根目录执行python manage.py inspectdb,从输出的建表语句中直接找到Coin对应的表名。
  2. 修正后的代码如下:
import sqlite3

connection = sqlite3.connect('db.sqlite3')
# 补上漏写的游标创建步骤
cur = connection.cursor()
# 把下面的your_app替换成你自己的app名称
for row in cur.execute('SELECT * FROM your_app_coin;'):
    print(row)

cur.close()
connection.close()

方案2(更推荐):在Jupyter中加载Django环境直接使用ORM

不用手动写SQL,和你在tasks.py中的代码写法完全兼容,无需关心表名、字段映射规则:

  1. 在notebook的首个代码块中执行如下代码初始化Django运行环境:
import os
import django

# 把my_project替换成你自己的Django项目名
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
django.setup()
  1. 后续直接导入模型执行查询即可:
# 把your_app替换成你自己的app名称
from your_app.models import Coin

# 和tasks.py中的用法完全一致
all_coins = Coin.objects.all()
for coin in all_coins:
    print(coin)

内容的提问来源于stack exchange,提问作者Tony Hoan Trinh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 13:24:04