当前位置: 首页 > news >正文

在 Django 项目中,`db.sqlite3` 文件是默认的数据库。本文将深入探讨其连接方式、可视化方法以及如何使用 Django ORM 进行增删改查操作。

在 Django 项目中,db.sqlite3文件是默认的数据库。本文将深入探讨其连接方式、可视化方法以及如何使用 Django ORM 进行增删改查操作。


🗄️db.sqlite3是什么?

db.sqlite3是 Django 默认使用的SQLite 数据库文件。SQLite 是一种轻量级的关系型数据库引擎,它将整个数据库(包括表、索引、数据)都存储在一个单独的文件中,无需独立的数据库服务器进程。

  • 核心优势:开箱即用,非常适合本地开发、测试和小型项目。
  • 文件位置:通常位于 Django 项目的根目录,与manage.py文件同级。

🔌 Django 如何连接 SQLite

Django 通过settings.py文件中的DATABASES配置项来连接数据库。对于 SQLite,默认配置如下:

python

settings.py

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’, # 指定数据库引擎
‘NAME’: BASE_DIR / ‘db.sqlite3’, # 指定数据库文件路径
}
}

  • ENGINE: 使用django.db.backends.sqlite3来连接 SQLite。
  • NAME: 数据库文件的路径。BASE_DIR是项目根目录,因此该配置会在项目根目录下创建或使用db.sqlite3文件。

💡 提示:Python 标准库自带sqlite3模块,因此无需额外安装驱动。


🖥️ 如何可视化db.sqlite3

1. 使用图形化工具 (推荐)

你可以使用多种图形化工具直接打开和编辑db.sqlite3文件:

  • DB Browser for SQLite (强烈推荐):免费、开源、跨平台,专为 SQLite 设计,支持浏览表、执行 SQL、数据导入导出等功能。
  • VS Code 插件:安装SQLiteSQLite Viewer等插件,可直接在编辑器中查看和操作数据库。
  • 其他专业工具:如 DataGrip、Navicat 等,功能强大,支持多种数据库。

操作步骤 (以 DB Browser 为例):

  1. 打开 DB Browser for SQLite。
  2. 点击“打开数据库” (Open Database)。
  3. 选择你的db.sqlite3文件。
  4. 即可在“浏览数据” (Browse Data) 标签页中查看和编辑表数据。
2. 使用 Django Admin

这是最“Django 风格”的可视化方式,尤其适合管理应用数据。

  1. 确保admin已启用:在settings.pyINSTALLED_APPS中,确认包含'django.contrib.admin'

  2. 注册模型:在myapp/admin.py文件中注册你的模型。
    python
    from django.contrib import admin
    from .models import Article # 替换为你的模型

    admin.site.register(Article)

  3. 创建超级用户:在终端执行以下命令,按提示创建管理员账号。
    bash
    python manage.py createsuperuser

  4. 访问后台:启动开发服务器python manage.py runserver,然后访问http://127.0.0.1:8000/admin/,使用超级用户账号登录即可管理数据。

3. 使用 Django Shell

这是一个轻量级的交互式环境,适合快速查询和调试。

bash

进入 Django Shell

python manage.py shell

在 Shell 中,你可以执行 ORM 操作:
python
from myapp.models import Article

查询所有文章

articles = Article.objects.all()
print(articles)

查询第一条

if articles:
print(articles[0].title)


✍️ 使用 Django ORM 进行增删改查 (CRUD)

Django 的 ORM (对象关系映射) 允许你使用 Python 代码来操作数据库,而无需编写原生 SQL。以下是一个完整的示例。

1. 定义模型 (Model)

首先,在myapp/models.py中定义一个简单的模型。

python
from django.db import models

class Article(models.Model):
title = models.CharField(max_length=200, verbose_name=“标题”)
content = models.TextField(verbose_name=“内容”)
created_at = models.DateTimeField(auto_now_add=True, verbose_name=“创建时间”)

def __str__(self): return self.title class Meta: verbose_name = "文章" verbose_name_plural = "文章列表"
2. 创建和应用迁移

定义好模型后,需要创建并应用数据库迁移,以在db.sqlite3中生成对应的数据表。

bash

1. 创建迁移文件

python manage.py makemigrations

2. 应用迁移,创建表

python manage.py migrate

3. 核心操作示例

接下来,在 Django Shell 中演示增删改查操作。

bash
python manage.py shell

python
from myapp.models import Article

1. C (Create) - 增加数据

方法一: create

article1 = Article.objects.create(
title=“Django 与 SQLite”,
content=“本文介绍了如何在 Django 中使用 SQLite 数据库。”
)

方法二: save

article2 = Article(title=“ORM 操作指南”, content=“使用 ORM 可以简化数据库操作。”)
article2.save()

2. R (Read) - 查询数据

查询所有

all_articles = Article.objects.all()
print(“所有文章:”, all_articles)

条件查询

first_article = Article.objects.first()
print(“第一篇文章:”, first_article)

specific_article = Article.objects.get(id=1) # 获取 ID 为 1 的文章,不存在则报错
print(“指定文章:”, specific_article)

过滤查询

django_articles = Article.objects.filter(title__contains=“Django”) # 标题包含 “Django”
print(“Django 相关文章:”, django_articles)

排序

sorted_articles = Article.objects.order_by(“-created_at”) # 按创建时间倒序
print(“按时间倒序:”, sorted_articles)

切片 (分页)

recent_articles = Article.objects.all()[:5] # 获取最新的 5 篇文章
print(“最近 5 篇文章:”, recent_articles)

3. U (Update) - 修改数据

方法一: 获取对象后修改并 save

article = Article.objects.get(id=1)
article.title = “更新后的标题”
article.save()

方法二: 使用 update() (更高效,一次操作多行)

Article.objects.filter(id=2).update(title=“批量更新标题”)

4. D (Delete) - 删除数据

方法一: 获取对象后 delete()

article_to_delete = Article.objects.get(id=1)
article_to_delete.delete()

方法二: 使用 delete() (可批量删除)

Article.objects.filter(title__contains=“批量”).delete()


💡 总结与建议

  • 开发/学习db.sqlite3配合 Django ORM 是绝佳组合,简单高效。
  • 可视化:日常开发推荐使用DB Browser for SQLiteDjango Admin
  • 生产环境:对于高并发、大数据量的场景,建议迁移到PostgreSQLMySQL等专业数据库。迁移时,只需修改settings.py中的DATABASES配置即可。
http://www.jsqmd.com/news/616114/

相关文章:

  • OpenClaw+千问3.5-9B智能家居:自然语言控制家庭设备
  • Yoopta-Editor最佳实践:10个提升编辑体验的实用技巧
  • 【更新至2024年】上市公司ESG评级评分数据合集(十份数据:华证年度、华证季度、Wind、商道融绿、富时罗素、彭博、润灵环球、MSCI、cnrds、盟浪)
  • 实时口罩检测-通用多场景适配:室内安检、地铁闸机、会议签到应用案例
  • OpenClaw多模型对比:Kimi-VL-A3B-Thinking与纯文本模型任务效果实测
  • 2026年工业电加热设备技术解析与主流厂商盘点:电磁加热厂家/电磁加热器厂家/电磁加热回转窑厂家/电磁回转窑厂家/选择指南 - 优质品牌商家
  • OpenClaw技能市场探索:发现适配Kimi-VL-A3B-Thinking的实用自动化模块
  • 黑马程序员python核心语法-基础知识
  • 2026年孔网钢带塑料复合管技术解析与合规厂家选型指南:兰州PE排水管、兰州PE波纹管、兰州PE管、兰州PE给排水管选择指南 - 优质品牌商家
  • Serverless 架构设计与实践:构建高效的无服务器应用
  • 付费内容无法访问?从技术原理到合法解决方案的完整指南
  • ORA-12169: TNS连接标识符过长,Oracle报错故障修复与远程处理
  • 探索数字内容解锁的高效访问之道:Bypass Paywalls Clean工具全解析
  • 2001-2023年各省农产品进出口额数据(无缺失)
  • 卸载CUDA(Windows)
  • OpenClaw任务编排进阶:Phi-3-vision-128k-instruct多步骤图文处理工作流设计
  • 测试人员聚焦于AI的4个核心方向
  • 2026年Q2养老院价格表哪家优:天津养老院、天津哪有回民养老院、天津国寿嘉园、天津市养老院、天津高端养老院、宜善园养老院选择指南 - 优质品牌商家
  • 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?募
  • 2026年车辆温度传感器TOP5推荐:热敏电阻(NTC)温度传感器、热电偶、高精度铂电阻(RTD)温度传感器、DS18B20数字温度传感器选择指南 - 优质品牌商家
  • 2025_NIPS_CRRL: Learning Channel-invariant Neural Representations for High-performance Cross-day ...
  • 【蓝桥杯】——>进阶
  • 用于尺寸标注函数 UF_DRF_object_s 结构体的详细说明
  • Nano-Banana Studio效果展示:高清Knolling平铺拆解作品集惊艳呈现
  • SecGPT-14B技能扩展:为OpenClaw添加网络资产扫描能力
  • 需求用例的写法
  • 2026年4月市场开箱机企业,包装机/高台打包机/胶带封箱机/自动封箱机/角边封箱机/封箱打包流水线,开箱机公司如何选 - 品牌推荐师
  • WiFiEspAT:基于AT指令的嵌入式Wi-Fi协处理器适配库
  • 【2026年最新600套毕设项目分享】微信小程序的医院核酸检测服务系统(30011)
  • 数据结构与算法:同余最短路